0
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心
发布
  • 发文章

  • 发资料

  • 发帖

  • 提问

  • 发视频

创作活动
DH8066101531900S R1BX

DH8066101531900S R1BX

  • 厂商:

    ENPIRION(英特尔)

  • 封装:

  • 描述:

    Quark™ SoC X1020D (16K Cache, 400 MHz) FC-BGA11E, Tray

  • 数据手册
  • 价格&库存
DH8066101531900S R1BX 数据手册
Intel® Quark™ SoC X1000 Datasheet August 2015 Document Number: 329676-005US You may not use or facilitate the use of this document in connection with any infringement or other legal analysis concerning Intel products described herein. You agree to grant Intel a non-exclusive, royalty-free license to any patent claim thereafter drafted which includes subject matter disclosed herein. Legal Lines and Disclaimers No license (express or implied, by estoppel or otherwise) to any intellectual property rights is granted by this document. All information provided here is subject to change without notice. Contact your Intel representative to obtain the latest Intel product specifications and roadmaps. The products described may contain design defects or errors known as errata which may cause the product to deviate from published specifications. Current characterized errata are available on request. Copies of documents which have an order number and are referenced in this document may be obtained by calling 1-800-548-4725 or by visiting: http://www.intel.com/design/literature.htm Intel technologies’ features and benefits depend on system configuration and may require enabled hardware, software or service activation. Learn more at http://www.intel.com/ or from the OEM or retailer. No computer system can be absolutely secure. Intel, Quark, and the Intel logo are trademarks of Intel Corporation in the U.S. and/or other countries. *Other names and brands may be claimed as the property of others. Copyright © 2015, Intel Corporation. All rights reserved. Intel® Quark™ SoC X1000 Datasheet 2 August 2015 Document Number: 329676-005US Contents—Intel® Quark™ SoC X1000 Contents 1.0 Introduction ............................................................................................................ 37 1.1 About This Manual ............................................................................................. 37 1.2 Component Overview......................................................................................... 37 1.2.1 SoC CPU Core Features ........................................................................... 38 1.2.2 System Memory Controller Features.......................................................... 39 1.2.3 Embedded SRAM Features ....................................................................... 39 1.2.4 Power Management Features ................................................................... 39 1.2.5 Security Features ................................................................................... 39 1.2.6 PCI Express* Features ............................................................................ 39 1.2.7 Ethernet Features................................................................................... 40 1.2.8 USB2 Host Controller Features ................................................................. 40 1.2.9 USB2 Device Controller Features .............................................................. 40 1.2.10 SD/SDIO/eMMC Controller Features .......................................................... 40 1.2.11 I2C* Master Controller ............................................................................ 40 1.2.12 GPIO Features ....................................................................................... 41 1.2.13 SPI Master Controller .............................................................................. 41 1.2.14 High Speed UART Controller with DMA ...................................................... 41 1.2.15 Legacy Bridge ........................................................................................ 41 1.2.16 Package ................................................................................................ 41 1.3 Component Identification ................................................................................... 41 2.0 Physical Interfaces .................................................................................................. 45 2.1 Pin States Through Reset ................................................................................... 47 2.2 System Memory Signals ..................................................................................... 47 2.3 PCI Express* 2.0 Signals .................................................................................... 48 2.4 Ethernet Interface Signals .................................................................................. 49 2.5 USB 2.0 Interface Signals................................................................................... 49 2.6 Integrated Clock Interface Signals ....................................................................... 50 2.7 SDIO/SD/MMC Signals ....................................................................................... 50 2.8 High Speed UART Interface Signals...................................................................... 51 2.9 I2C* Interface Signals........................................................................................ 51 2.10 Legacy Serial Peripheral Interface (SPI) Signals..................................................... 52 2.11 Serial Peripheral Interface (SPI) .......................................................................... 52 2.12 Real Time Clock (RTC) Interface Signals ............................................................... 53 2.13 Power Management Signals ................................................................................ 53 2.14 JTAG and Debug Interface Signals ....................................................................... 53 2.15 Legacy Interface Signals .................................................................................... 54 2.16 General Purpose I/O Interface Signals.................................................................. 54 2.17 Power And Ground Pins ...................................................................................... 55 2.18 Hardware Straps ............................................................................................... 56 3.0 Ballout and Package Information............................................................................. 59 3.1 Package Diagram .............................................................................................. 59 3.2 Ball Listings ...................................................................................................... 60 4.0 Electrical Characteristics ......................................................................................... 69 4.1 Absolute Maximum Ratings ................................................................................. 69 4.2 Recommended Power Supply Ranges ................................................................... 70 4.3 Maximum Supply Current ................................................................................... 71 4.4 Configurable IO Characteristics ........................................................................... 72 4.5 RTC DC Characteristics....................................................................................... 74 4.6 PCI Express* 2.0 DC/AC Characteristics ............................................................... 74 4.7 USB 2.0 DC/AC Characteristics............................................................................ 77 August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 3 Intel® Quark™ SoC X1000—Contents 4.8 4.9 General Interface Timing ....................................................................................79 4.8.1 Legacy SPI Interface Timing .....................................................................79 4.8.2 SPI0/1 Interface Timing...........................................................................80 4.8.3 SDIO Interface Timing.............................................................................81 Clock AC Timing ................................................................................................82 4.9.1 Reference Clock AC Characteristics............................................................82 5.0 Register Access Methods.........................................................................................85 5.1 Fixed I/O Register Access ...................................................................................85 5.2 Fixed Memory Mapped Register Access .................................................................85 5.3 I/O Referenced Register Access ...........................................................................85 5.4 Memory Referenced Register Access.....................................................................86 5.5 PCI Configuration Register Access ........................................................................86 5.5.1 PCI Configuration Access - CAM: I/O Indexed Scheme .................................86 5.5.2 PCI Configuration Access - ECAM: Memory Mapped Scheme .........................87 5.6 Message Bus Register Access ..............................................................................88 5.7 Register Field Access Types.................................................................................89 6.0 Mapping Address Spaces..........................................................................................91 6.1 Physical Address Space Mappings.........................................................................91 6.1.1 Bridge Memory Map ................................................................................91 6.1.1.1 MMIO ......................................................................................93 6.1.1.2 DOS DRAM ...............................................................................94 6.1.1.3 Additional Mappings...................................................................94 6.1.2 MMIO Map .............................................................................................95 6.2 I/O Address Space .............................................................................................95 6.2.1 Host Bridge I/O Map................................................................................96 6.2.2 I/O Fabric I/O Map..................................................................................96 6.2.2.1 Legacy Bridge Fixed I/O Address Ranges ......................................96 6.2.2.2 Variable I/O Address Ranges.......................................................96 6.3 PCI Configuration Space .....................................................................................97 6.4 Message Bus Space............................................................................................99 7.0 Clocking ................................................................................................................. 101 7.1 Clocking Features ............................................................................................ 101 7.2 Platform/System Clock Domains ........................................................................ 102 8.0 Power Management ............................................................................................... 105 8.1 Power Management Features............................................................................. 105 8.2 Signal Descriptions .......................................................................................... 105 8.3 ACPI Supported States ..................................................................................... 106 8.3.1 S-State Definition ................................................................................. 106 8.3.1.1 S0 - Full On ............................................................................ 106 8.3.1.2 S3 - Suspend to RAM (Standby) ................................................ 106 8.3.1.3 S4 - Suspend to Disk (Hibernate) .............................................. 106 8.3.1.4 S5 - Soft Off ........................................................................... 107 8.3.2 System States...................................................................................... 107 8.3.3 Processor Idle States............................................................................. 108 8.3.4 Integrated Memory Controller States ....................................................... 108 8.3.5 PCIe* States ........................................................................................ 108 8.3.6 Interface State Combinations ................................................................. 109 8.4 Processor Core Power Management .................................................................... 109 8.4.1 Low-Power Idle States........................................................................... 109 8.4.1.1 Clock Control and Low-Power States .......................................... 109 8.4.2 Processor Core C-States Description ........................................................ 109 8.4.2.1 Core C0 State ......................................................................... 109 8.4.2.2 Core C1 State ......................................................................... 110 Intel® Quark™ SoC X1000 Datasheet 4 August 2015 Document Number: 329676-005US Contents—Intel® Quark™ SoC X1000 8.5 9.0 8.4.2.3 Core C2 State......................................................................... 110 Memory Controller Power Management............................................................... 110 8.5.1 Disabling Unused System Memory Outputs .............................................. 110 8.5.2 DRAM Power Management and Initialization ............................................. 110 8.5.2.1 Initialization Role of CKE .......................................................... 110 8.5.2.2 Dynamic Self-Refresh .............................................................. 110 8.5.2.3 Dynamic Power Down Operation ............................................... 111 8.5.2.4 Functional Clock Gating ........................................................... 111 Power Up and Reset Sequence............................................................................... 113 9.1 Intel® Quark™ SoC X1000 System States ........................................................... 113 9.1.1 System Sleep States Control (S-States) .................................................. 113 9.2 Power Up and Down Sequences......................................................................... 113 9.2.1 Power Up, Wake and Reset Overview ...................................................... 113 9.2.2 RTC Power Well Transition: G5 to G3 State Transition ............................... 114 9.2.3 AC Power Applied: G3 to S4/S5 State Transition ....................................... 115 9.2.4 Using PWR_BTN_B: Transition from S4/S5 to S0 ...................................... 116 9.2.5 Power-Up Sequence without G2/G3: No Coin-Cell Battery .......................... 118 9.2.6 Going to Sleep: Transitions from S0 to S3 or S4/S5 .................................. 120 9.2.7 Wake Events: Transition from S3 to S0 ................................................... 120 9.2.8 System Reset Sequences....................................................................... 121 9.2.8.1 Cold Boot Sequence ............................................................... 121 9.2.8.2 Cold Reset Sequence............................................................... 121 9.2.8.3 Warm Reset Sequence (Internal) .............................................. 122 9.2.8.4 Externally Initiated Warm Reset Sequence ................................. 122 9.2.9 Handling Power Failures ........................................................................ 122 10.0 Thermal Management ............................................................................................ 123 10.1 Overview ....................................................................................................... 123 10.2 Thermal Sensor............................................................................................... 123 11.0 Processor Core ...................................................................................................... 125 12.0 Host Bridge ........................................................................................................... 127 12.1 Embedded SRAM (eSRAM)................................................................................ 127 12.1.1 Initialization ........................................................................................ 127 12.1.2 Configuration ....................................................................................... 127 12.1.2.1 4KB Page Mode ...................................................................... 127 12.1.2.2 512KB Block Page Mode........................................................... 128 12.1.3 Configuration Locking ........................................................................... 129 12.1.4 ECC Protection ..................................................................................... 130 12.1.5 Flush to DRAM ..................................................................................... 130 12.2 Isolated Memory Regions (IMR)......................................................................... 130 12.2.1 IMR Violation ....................................................................................... 131 12.2.2 IMR Locking......................................................................................... 131 12.3 Remote Management Unit DMA ......................................................................... 131 12.4 Register Map .................................................................................................. 132 12.5 PCI Configuration Registers .............................................................................. 132 12.5.1 PCI Device ID and Vendor ID Fields (PCI_DEVICE_VENDOR)—Offset 0h....... 133 12.5.2 PCI Status and Command Fields (PCI_STATUS_COMMAND)—Offset 4h ........ 133 12.5.3 PCI Class Code and Revision ID Fields (PCI_CLASS_REVISION)—Offset 8h ... 134 12.5.4 PCI Miscellaneous Fields (PCI_MISC)—Offset Ch ....................................... 134 12.5.5 PCI Subsystem ID and Subsystem Vendor ID Fields (PCI_SUBSYSTEM)—Offset 2Ch .............................................................. 135 12.5.6 Message Bus Control Register (MCR) (SB_PACKET_REG)—Offset D0h.......... 135 12.5.7 Message Data Register (MDR) (SB_DATA_REG)—Offset D4h ...................... 136 August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 5 Intel® Quark™ SoC X1000—Contents 12.6 12.7 12.5.8 Message Control Register eXtension (MCRX) (SB_ADDR_EXTN_REG)—Offset D8h .................................................................................................... 136 12.5.9 Manufacturer ID (PCI_MANUFACTURER)—Offset F8h ................................. 137 IO Mapped Register ......................................................................................... 138 12.6.1 ACPI Processor Block............................................................................. 138 12.6.1.1 Processor Control (P_CNT)—Offset 0h ........................................ 138 12.6.1.2 Level 2 Register (P_LVL2)—Offset 4h ......................................... 138 12.6.1.3 C6 Control Register (P_C6C)—Offset Ch ..................................... 139 12.6.2 SPI DMA Block ..................................................................................... 140 12.6.2.1 Option Register 1(P_CFG_72) —Offset 72h ................................. 140 Message Bus Register....................................................................................... 140 12.7.1 Host Bridge Arbiter (Port 0x00) .............................................................. 140 12.7.1.1 Enhanced Configuration Space (AEC_CTRL)—Offset 0h ................ 141 12.7.1.2 STATUS—Offset 21h ............................................................... 141 12.7.1.3 Requester ID Match Control (ASUBCHAN_CTRL)—Offset 50h ........ 142 12.7.1.4 Requester ID Match Sub-Channel 1 (ASUBCHAN1_MATCH)—Offset 51h ....................................................................................... 143 12.7.1.5 Requester ID Match Sub-Channel 2 (ASUBCHAN2_MATCH)—Offset 52h ....................................................................................... 143 12.7.1.6 Requester ID Match Sub-Channel 3 (ASUBCHAN3_MATCH)—Offset 53h ....................................................................................... 144 12.7.2 Host Bridge (Port 0x03) ......................................................................... 145 12.7.2.1 Host Miscellaneous Controls 2 (HMISC2)—Offset 3h .................... 146 12.7.2.2 Host System Management Mode Controls (HSMMCTL)—Offset 4h.. 147 12.7.2.3 Host Memory I/O Boundary (HMBOUND)—Offset 8h .................... 148 12.7.2.4 Extended Configuration Space (HECREG)—Offset 9h ................... 148 12.7.2.5 Miscellaneous Legacy Signal Enables (HLEGACY)—Offset Ah ......... 149 12.7.2.6 Host Bridge Write Flush Control (HWFLUSH)—Offset Ch ............... 149 12.7.2.7 MTRR Capabilities (MTRR_CAP)—Offset 40h ............................... 150 12.7.2.8 MTRR Default Type (MTRR_DEF_TYPE)—Offset 41h ..................... 151 12.7.2.9 MTRR Fixed 64KB Range 0x00000 (MTRR_FIX64K_00000)—Offset 42h ....................................................................................... 151 12.7.2.10 MTRR Fixed 64KB Range 0x40000 (MTRR_FIX64K_40000)—Offset 43h ....................................................................................... 152 12.7.2.11 MTRR Fixed 16KB Range 0x80000 (MTRR_FIX16K_80000)—Offset 44h ....................................................................................... 152 12.7.2.12 MTRR Fixed 16KB Range 0x90000 (MTRR_FIX16K_90000)—Offset 45h ....................................................................................... 153 12.7.2.13 MTRR Fixed 16KB Range 0xA0000 (MTRR_FIX16K_A0000)—Offset 46h ....................................................................................... 154 12.7.2.14 MTRR Fixed 16KB Range 0xB0000 (MTRR_FIX16K_B0000)—Offset 47h ....................................................................................... 154 12.7.2.15 MTRR Fixed 4KB Range 0xC0000 (MTRR_FIX4K_C0000)—Offset 48h ....................................................................................... 155 12.7.2.16 MTRR Fixed 4KB Range 0xC4000 (MTRR_FIX4K_C4000)—Offset 49h ....................................................................................... 155 12.7.2.17 MTRR Fixed 4KB Range 0xC8000 (MTRR_FIX4K_C8000)—Offset 4Ah ....................................................................................... 156 12.7.2.18 MTRR Fixed 4KB Range 0xCC000 (MTRR_FIX4K_CC000)—Offset 4Bh ....................................................................................... 156 12.7.2.19 MTRR Fixed 4KB Range 0xD0000 (MTRR_FIX4K_D0000)—Offset 4Ch ....................................................................................... 157 12.7.2.20 MTRR Fixed 4KB Range 0xD40000 (MTRR_FIX4K_D4000)—Offset 4Dh....................................................................................... 158 12.7.2.21 MTRR Fixed 4KB Range 0xD8000 (MTRR_FIX4K_D8000)—Offset 4Eh ....................................................................................... 158 12.7.2.22 MTRR Fixed 4KB Range 0xDC000 (MTRR_FIX4K_DC000)—Offset 4Fh ....................................................................................... 159 Intel® Quark™ SoC X1000 Datasheet 6 August 2015 Document Number: 329676-005US Contents—Intel® Quark™ SoC X1000 12.7.2.23 MTRR Fixed 4KB Range 0xE0000 (MTRR_FIX4K_E0000)—Offset 50h....................................................................................... 159 12.7.2.24 MTRR Fixed 4KB Range 0xE4000 (MTRR_FIX4K_E4000)—Offset 51h....................................................................................... 160 12.7.2.25 MTRR Fixed 4KB Range 0xE8000 (MTRR_FIX4K_E8000)—Offset 52h....................................................................................... 160 12.7.2.26 MTRR Fixed 4KB Range 0xEC000 (MTRR_FIX4K_EC000)—Offset 53h....................................................................................... 161 12.7.2.27 MTRR Fixed 4KB Range 0xF0000 (MTRR_FIX4K_F0000)—Offset 54h....................................................................................... 161 12.7.2.28 MTRR Fixed 4KB Range 0xF4000 (MTRR_FIX4K_F4000)—Offset 55h....................................................................................... 162 12.7.2.29 MTRR Fixed 4KB Range 0xF8000 (MTRR_FIX4K_F8000)—Offset 56h....................................................................................... 163 12.7.2.30 MTRR Fixed 4KB Range 0xFC000 (MTRR_FIX4K_FC000)—Offset 57h....................................................................................... 163 12.7.2.31 System Management Range Physical Base (MTRR_SMRR_PHYSBASE)—Offset 58h ...................................... 164 12.7.2.32 System Management Range Physical Mask (MTRR_SMRR_PHYSMASK)—Offset 59h...................................... 164 12.7.2.33 MTRR Variable Range Physical Base 0 (MTRR_VAR_PHYSBASE0)—Offset 5Ah....................................... 165 12.7.2.34 MTRR Variable Range Physical Mask 0 (MTRR_VAR_PHYSMASK0)— Offset 5Bh ............................................................................. 165 12.7.2.35 MTRR Variable Range Physical Base 1 (MTRR_VAR_PHYSBASE1)—Offset 5Ch....................................... 166 12.7.2.36 MTRR Variable Range Physical Mask 1 (MTRR_VAR_PHYSMASK1)— Offset 5Dh ............................................................................. 167 12.7.2.37 MTRR Variable Range Physical Base 2 (MTRR_VAR_PHYSBASE2)—Offset 5Eh ....................................... 167 12.7.2.38 MTRR Variable Range Physical Mask 2 (MTRR_VAR_PHYSMASK2)— Offset 5Fh.............................................................................. 168 12.7.2.39 MTRR Variable Range Physical Base 3 (MTRR_VAR_PHYSBASE3)—Offset 60h ....................................... 168 12.7.2.40 MTRR Variable Range Physical Mask 3 (MTRR_VAR_PHYSMASK3)— Offset 61h ............................................................................. 169 12.7.2.41 MTRR Variable Range Physical Base 4 (MTRR_VAR_PHYSBASE4)—Offset 62h ....................................... 169 12.7.2.42 MTRR Variable Range Physical Mask 4 (MTRR_VAR_PHYSMASK4)— Offset 63h ............................................................................. 170 12.7.2.43 MTRR Variable Range Physical Base 5 (MTRR_VAR_PHYSBASE5)—Offset 64h ....................................... 171 12.7.2.44 MTRR Variable Range Physical Mask 5 (MTRR_VAR_PHYSMASK5)— Offset 65h ............................................................................. 171 12.7.2.45 MTRR Variable Range Physical Base 6 (MTRR_VAR_PHYSBASE6)—Offset 66h ....................................... 172 12.7.2.46 MTRR Variable Range Physical Mask 6 (MTRR_VAR_PHYSMASK6)— Offset 67h ............................................................................. 172 12.7.2.47 MTRR Variable Range Physical Base 7 (MTRR_VAR_PHYSBASE7)—Offset 68h ....................................... 173 12.7.2.48 MTRR Variable Range Physical Mask 7 (MTRR_VAR_PHYSMASK7)— Offset 69h ............................................................................. 173 12.7.3 Remote Management Unit (Port 0x04) .................................................... 174 12.7.3.1 SPI DMA Count Register (P_CFG_60)—Offset 60h........................ 174 12.7.3.2 SPI DMA Destination Register (P_CFG_61)—Offset 61h ................ 175 12.7.3.3 SPI DMA Source Register (P_CFG_62)—Offset 62h ...................... 175 12.7.3.4 Processor Register Block (P_BLK) Base Address (P_CFG_70)—Offset 70h .......................................................... 176 12.7.3.5 Control Register (P_CFG_71)—Offset 71h................................... 176 12.7.3.6 Watchdog Control Register (P_CFG_74)—Offset 74h .................... 177 August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 7 Intel® Quark™ SoC X1000—Contents 12.7.3.7 Thermal Sensor Mode Register (P_CFG_B0)—Offset B0h............... 178 12.7.3.8 Thermal Sensor Temperature Register (P_CFG_B1)—Offset B1h .... 178 12.7.3.9 Thermal Sensor Programmable Trip Point Register (P_CFG_B2)—Offset B2h .......................................................... 179 12.7.4 Memory Manager (Port 0x05) ................................................................. 180 12.7.4.1 Control (BCTRL)—Offset 1h ...................................................... 181 12.7.4.2 Write Flush Policy (BWFLUSH)—Offset 2h ................................... 182 12.7.4.3 Isolated Memory Region Violation Control (BIMRVCTL)—Offset 19h 183 12.7.4.4 Debug 1 (DEBUG1)—Offset 31h ................................................ 184 12.7.4.5 Isolated Memory Region 0 Low Address (IMR0L)—Offset 40h ........ 186 12.7.4.6 Isolated Memory Region 0 High Address (IMR0H)—Offset 41h ....... 186 12.7.4.7 Isolated Memory Region 0 Read Mask (IMR0RM)—Offset 42h ........ 187 12.7.4.8 Isolated Memory Region 0 Write Mask (IMR0WM)—Offset 43h ....... 189 12.7.4.9 Isolated Memory Region 1 Low Address (IMR1L)—Offset 44h ........ 190 12.7.4.10 Isolated Memory Region 1 High Address (IMR1H)—Offset 45h.... 191 12.7.4.11 Isolated Memory Region 1 Read Mask (IMR1RM)—Offset 46h..... 191 12.7.4.12 Isolated Memory Region 1 Write Mask (IMR1WM)—Offset 47h ... 193 12.7.4.13 Isolated Memory Region 2 Low Address (IMR2L)—Offset 48h ..... 195 12.7.4.14 Isolated Memory Region 2 High Address (IMR2H)—Offset 49h.... 196 12.7.4.15 Isolated Memory Region 2 Read Mask (IMR2RM)—Offset 4Ah..... 196 12.7.4.16 Isolated Memory Region 2 Write Mask (IMR2WM)—Offset 4Bh ... 198 12.7.4.17 Isolated Memory Region 3 Low Address (IMR3L)—Offset 4Ch ..... 200 12.7.4.18 Isolated Memory Region 3 High Address (IMR3H)—Offset 4Dh ... 200 12.7.4.19 Isolated Memory Region 3 Read Mask (IMR3RM)—Offset 4Eh..... 201 12.7.4.20 Isolated Memory Region 3 Write Mask (IMR3WM)—Offset 4Fh.... 203 12.7.4.21 Isolated Memory Region 4 Low Address (IMR4L)—Offset 50h ..... 204 12.7.4.22 Isolated Memory Region 4 High Address (IMR4H)—Offset 51h.... 205 12.7.4.23 Isolated Memory Region 4 Read Mask (IMR4RM)—Offset 52h..... 205 12.7.4.24 Isolated Memory Region 4 Write Mask (IMR4WM)—Offset 53h ... 207 12.7.4.25 Isolated Memory Region 5 Low Address (IMR5L)—Offset 54h ..... 209 12.7.4.26 Isolated Memory Region 5 High Address (IMR5H)—Offset 55h.... 210 12.7.4.27 Isolated Memory Region 5 Read Mask (IMR5RM)—Offset 56h..... 210 12.7.4.28 Isolated Memory Region 5 Write Mask (IMR5WM)—Offset 57h ... 212 12.7.4.29 Isolated Memory Region 6 Low Address (IMR6L)—Offset 58h ..... 214 12.7.4.30 Isolated Memory Region 6 High Address (IMR6H)—Offset 59h.... 214 12.7.4.31 Isolated Memory Region 6 Read Mask (IMR6RM)—Offset 5Ah..... 215 12.7.4.32 Isolated Memory Region 6 Write Mask (IMR6WM)—Offset 5Bh ... 217 12.7.4.33 Isolated Memory Region 7 Low Address (IMR7L)—Offset 5Ch ..... 218 12.7.4.34 Isolated Memory Region 7 High Address (IMR7H)—Offset 5Dh ... 219 12.7.4.35 Isolated Memory Region 7 Read Mask (IMR7RM)—Offset 5Eh..... 219 12.7.4.36 Isolated Memory Region 7 Write Mask (IMR7WM)—Offset 5Fh.... 221 12.7.4.37 eSRAM Control (ESRAMCTRL)—Offset 81h ............................... 223 12.7.4.38 eSRAM Block Page Control (ESRAMPGCTRL_BLOCK)—Offset 82h 224 12.7.4.39 eSRAM Correctable Error (ESRAMCERR)—Offset 83h................. 226 12.7.4.40 eSRAM Uncorrectable Error (ESRAMUERR)—Offset 84h ............. 226 12.7.4.41 eSRAM ECC Error Syndrome (ESRAMSDROME)—Offset 88h ....... 227 12.7.5 Memory Manager eSRAM (Port 0x05) ...................................................... 228 12.7.5.1 eSRAM Page Control Register[0-127] (ESRAMPGCTRL[0-127])—Offset 0h, Count 128, Stride 4h ............ 228 12.7.6 SoC Unit (Port 0x31) ............................................................................. 229 12.7.6.1 Thermal Sensor Configuration 4 (SCU_TSCFG4_Config)—Offset 34h ....................................................................................... 229 12.7.6.2 Sticky Write Once (CFGSTICKY_W1)—Offset 50h ......................... 230 12.7.6.3 Sticky Read/Write (CFGSTICKY_RW)—Offset 51h......................... 231 12.7.6.4 Non-Sticky Read/Write Once (CFGNONSTICKY_W1)—Offset 52h .... 231 13.0 System Memory Controller ..................................................................................... 233 13.1 Signal Descriptions .......................................................................................... 233 13.2 Features ......................................................................................................... 234 Intel® Quark™ SoC X1000 Datasheet 8 August 2015 Document Number: 329676-005US Contents—Intel® Quark™ SoC X1000 13.3 13.4 13.5 13.2.1 System Memory Technology Supported ................................................... 234 13.2.2 Rules for Populating Memory Down Ranks................................................ 235 13.2.3 DRAM Error Detection & Correction (EDC)................................................ 235 13.2.4 DRAM Data Scrambling ......................................................................... 236 13.2.5 Power Management .............................................................................. 236 Register Map .................................................................................................. 236 Message Bus Registers..................................................................................... 236 13.4.1 DRAM Rank Population (DRP)—Offset 0h ................................................. 237 13.4.2 DRAM Timing Register 0 (DTR0)—Offset 1h ............................................. 238 13.4.3 DRAM Timing Register 1 (DTR1)—Offset 2h ............................................. 240 13.4.4 DRAM Timing Register 2 (DTR2)—Offset 3h ............................................. 242 13.4.5 DRAM Timing Register 3 (DTR3)—Offset 4h ............................................. 243 13.4.6 DRAM Timing Register 4 (DTR4)—Offset 5h ............................................. 244 13.4.7 DRAM Power Management Control 0 (DPMC0)—Offset 6h........................... 245 13.4.8 DRAM Refresh Control (DRFC)—Offset 8h ................................................ 247 13.4.9 DRAM Scheduler Control (DSCH)—Offset 9h............................................. 248 13.4.10 DRAM Calibration Control (DCAL)—Offset Ah .......................................... 249 13.4.11 DRAM Reset Management Control (DRMC)—Offset Bh.............................. 250 13.4.12 Power Management Status (PMSTS)—Offset Ch ...................................... 251 13.4.13 DRAM Control Operation (DCO)—Offset Fh ............................................. 252 13.4.14 Sticky Scratchpad 0 (SSKPD0)—Offset 4Ah ............................................ 252 13.4.15 Sticky Scratchpad 1 (SSKPD1)—Offset 4Bh ............................................ 253 13.4.16 DRAM ECC Control Register (DECCCTRL)—Offset 60h .............................. 253 13.4.17 DRAM ECC Status (DECCSTAT)—Offset 61h............................................ 254 13.4.18 DRAM ECC Single Bit Error Count (DECCSBECNT)—Offset 62h .................. 254 13.4.19 DRAM Single Bit ECC Error Captured Address (DECCSBECA)—Offset 68h.... 255 13.4.20 DRAM Single Bit ECC Error Captured Syndrome (DECCSBECS)—Offset 69h. 256 13.4.21 DRAM Double Bit ECC Error Captured Address (DECCDBECA)—Offset 6Ah .. 256 13.4.22 DRAM Double Bit ECC Error Captured Syndrome (DECCDBECS)—Offset 6Bh 257 13.4.23 Memory Controller Fuse Status (DFUSESTAT)—Offset 70h ........................ 257 13.4.24 Scrambler Seed (DSCRMSEED)—Offset 80h............................................ 258 Message Bus Commands .................................................................................. 259 14.0 PCI Express* 2.0 ................................................................................................... 261 14.1 Signal Descriptions .......................................................................................... 261 14.2 Features ........................................................................................................ 261 14.2.1 Interrupts and Events ........................................................................... 262 14.2.1.1 Express Card Hot Plug Events ................................................... 262 14.2.1.2 System Error (SERR)............................................................... 263 14.2.2 Power Management .............................................................................. 263 14.3 References ..................................................................................................... 263 14.4 Register Map .................................................................................................. 263 14.5 PCI Configuration Registers .............................................................................. 264 14.5.1 Identifiers (ID)—Offset 0h ..................................................................... 266 14.5.2 Primary Status (CMD_PSTS)—Offset 4h................................................... 266 14.5.3 Class Code (RID_CC)—Offset 8h............................................................. 268 14.5.4 Header Type (CLS_PLT_HTYPE)—Offset Ch .............................................. 268 14.5.5 Secondary Latency Timer (BNUM_SLT)—Offset 18h .................................. 269 14.5.6 Secondary Status (IOBL_SSTS)—Offset 1Ch ............................................ 269 14.5.7 Memory Base and Limit (MBL)—Offset 20h .............................................. 270 14.5.8 Prefetchable Memory Base and Limit (PMBL)—Offset 24h........................... 271 14.5.9 Prefetchable Memory Base Upper 32 Bits (PMBU32)—Offset 28h ................. 271 14.5.10 Prefetchable Memory Limit Upper 32 Bits (PMLU32)—Offset 2Ch ............... 272 14.5.11 Capabilities List Pointer (CAPP)—Offset 34h............................................ 272 14.5.12 Bridge Control (INTR_BCTRL)—Offset 3Ch.............................................. 273 August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 9 Intel® Quark™ SoC X1000—Contents 14.5.13 14.5.14 14.5.15 14.5.16 14.5.17 14.5.18 14.5.19 14.5.20 14.5.21 14.5.22 14.5.23 14.5.24 14.5.25 14.5.26 14.5.27 14.5.28 14.5.29 14.5.30 14.5.31 14.5.32 14.5.33 14.5.34 14.5.35 14.5.36 14.5.37 14.5.38 14.5.39 14.5.40 14.5.41 14.5.42 14.5.43 14.5.44 14.5.45 14.5.46 14.5.47 14.5.48 14.5.49 14.5.50 14.5.51 14.5.52 14.5.53 PCI Express Capabilities (CLIST_XCAP)—Offset 40h ................................. 274 Device Capabilities (DCAP)—Offset 44h .................................................. 275 Device Status (DCTL_DSTS)—Offset 48h ................................................ 276 Link Capabilities (LCAP)—Offset 4Ch ...................................................... 277 Link Status (LCTL_LSTS)—Offset 50h..................................................... 279 Slot Capabilities (SLCAP)—Offset 54h..................................................... 280 Slot Status (SLCTL_SLSTS)—Offset 58h ................................................. 281 Root Control (RCTL)—Offset 5Ch ........................................................... 283 Root Status (RSTS)—Offset 60h ............................................................ 283 Device Capabilities 2 (DCAP2)—Offset 64h.............................................. 284 Device Status 2 (DCTL2_DSTS2)—Offset 68h.......................................... 285 Link Capability 2 (LCAP2)—Offset 6Ch.................................................... 286 Link Status 2 (LCTL2_LSTS2)—Offset 70h .............................................. 286 Slot Capabilities 2 (SLCAP2)—Offset 74h ................................................ 288 Slot Status 2 (SLCTL2_SLSTS2)—Offset 78h ........................................... 288 Message Signaled Interrupt Message Control (MID_MC)—Offset 80h .......... 289 Message Signaled Interrupt Message Address (MA)—Offset 84h................. 289 Message Signaled Interrupt Message Data (MD)—Offset 88h..................... 290 Subsystem Vendor Capability (SVCAP)—Offset 90h.................................. 290 Subsystem Vendor IDs (SVID)—Offset 94h ............................................. 291 PCI Power Management Capabilities (PMCAP_PMC)—Offset A0h................. 291 PCI Power Management Control And Status (PMCS)—Offset A4h................ 292 Channel Configuration (CCFG)—Offset D0h ............................................. 293 Miscellaneous Port Configuration 2 (MPC2)—Offset D4h ............................ 294 Miscellaneous Port Configuration (MPC)—Offset D8h ................................ 295 SMI / SCI Status (SMSCS)—Offset DCh.................................................. 296 Message Bus Control (PHYCTL_PHYCTL2_IOSFSBCTL)—Offset F4h ............. 297 Advanced Error Reporting Capability Header (AECH)—Offset 100h ............. 298 Uncorrectable Error Status (UES)—Offset 104h ....................................... 299 Uncorrectable Error Mask (UEM)—Offset 108h......................................... 300 Uncorrectable Error Severity (UEV)—Offset 10Ch..................................... 301 Correctable Error Status (CES)—Offset 110h........................................... 302 Correctable Error Mask (CEM)—Offset 114h ............................................ 303 Advanced Error Capabilities and Control (AECC)—Offset 118h ................... 304 Header Log (HL_DW1)—Offset 11Ch ...................................................... 304 Header Log (HL_DW2)—Offset 120h ...................................................... 305 Header Log (HL_DW3)—Offset 124h ...................................................... 305 Header Log (HL_DW4)—Offset 128h ...................................................... 305 Root Error Command (REC)—Offset 12Ch ............................................... 306 Root Error Status (RES)—Offset 130h .................................................... 306 Error Source Identification (ESID)—Offset 134h ...................................... 307 15.0 10/100 Mbps Ethernet ........................................................................................... 309 15.1 Signal Descriptions .......................................................................................... 309 15.2 Features:........................................................................................................ 309 15.3 References...................................................................................................... 310 15.4 Register Map ................................................................................................... 311 15.5 PCI Configuration Registers ............................................................................... 311 15.5.1 Vendor ID (VENDOR_ID)—Offset 0h ........................................................ 312 15.5.2 Device ID (DEVICE_ID)—Offset 2h .......................................................... 313 15.5.3 Command Register (COMMAND_REGISTER)—Offset 4h .............................. 313 15.5.4 Status Register (STATUS)—Offset 6h....................................................... 314 15.5.5 Revision ID and Class Code (REV_ID_CLASS_CODE)—Offset 8h .................. 315 15.5.6 Cache Line Size (CACHE_LINE_SIZE)—Offset Ch ....................................... 315 15.5.7 Latency Timer (LATENCY_TIMER)—Offset Dh ............................................ 315 Intel® Quark™ SoC X1000 Datasheet 10 August 2015 Document Number: 329676-005US Contents—Intel® Quark™ SoC X1000 15.6 15.5.8 Header Type (HEADER_TYPE)—Offset Eh ................................................. 316 15.5.9 BIST (BIST)—Offset Fh ......................................................................... 316 15.5.10 Base Address Register (BAR0)—Offset 10h ............................................. 317 15.5.11 Cardbus CIS Pointer (CARDBUS_CIS_POINTER)—Offset 28h..................... 317 15.5.12 Subsystem Vendor ID (SUB_SYS_VENDOR_ID)—Offset 2Ch ..................... 318 15.5.13 Subsystem ID (SUB_SYS_ID)—Offset 2Eh.............................................. 318 15.5.14 Expansion ROM Base Address (EXP_ROM_BASE_ADR)—Offset 30h ............ 318 15.5.15 Capabilities Pointer (CAP_POINTER)—Offset 34h ..................................... 319 15.5.16 Interrupt Line Register (INTR_LINE)—Offset 3Ch .................................... 319 15.5.17 Interrupt Pin Register (INTR_PIN)—Offset 3Dh ....................................... 320 15.5.18 MIN_GNT (MIN_GNT)—Offset 3Eh......................................................... 320 15.5.19 MAX_LAT (MAX_LAT)—Offset 3Fh ......................................................... 320 15.5.20 Capability ID (PM_CAP_ID)—Offset 80h ................................................. 321 15.5.21 Next Capability Pointer (PM_NXT_CAP_PTR)—Offset 81h .......................... 321 15.5.22 Power Management Capabilities (PMC)—Offset 82h ................................. 321 15.5.23 Power Management Control/Status Register (PMCSR)—Offset 84h ............. 322 15.5.24 PM CSR PCI-to-PCI Bridge Support Extension (PMCSR_BSE)—Offset 86h.... 323 15.5.25 Power Management Data Register (DATA_REGISTER)—Offset 87h............. 323 15.5.26 Capability ID (MSI_CAP_ID)—Offset A0h................................................ 324 15.5.27 Next Capability Pointer (MSI_NXT_CAP_PTR)—Offset A1h ........................ 324 15.5.28 Message Control (MESSAGE_CTRL)—Offset A2h ...................................... 324 15.5.29 Message Address (MESSAGE_ADDR)—Offset A4h .................................... 325 15.5.30 Message Data (MESSAGE_DATA)—Offset A8h......................................... 325 15.5.31 Mask Bits for MSI (PER_VEC_MASK)—Offset ACh .................................... 326 15.5.32 Pending Bits for MSI (PER_VEC_PEND)—Offset B0h ................................. 326 Memory Mapped Registers ................................................................................ 327 15.6.1 MAC Configuration Register (Register 0) (GMAC_REG_0)—Offset 0h............ 331 15.6.2 MAC Frame Filter (Register 1) (GMAC_REG_1)—Offset 4h .......................... 334 15.6.3 Hash Table High Register (Register 2) (GMAC_REG_2)—Offset 8h ............... 336 15.6.4 Hash Table Low Register (Register 3) (GMAC_REG_3)—Offset Ch ............... 336 15.6.5 GMII Address Register (Register 4) (GMAC_REG_4)—Offset 10h ................. 337 15.6.6 GMII Data Register (Register 5) (GMAC_REG_5)—Offset 14h ..................... 338 15.6.7 Flow Control Register (Register 6) (GMAC_REG_6)—Offset 18h .................. 339 15.6.8 VLAN Tag Register (Register 7) (GMAC_REG_7)—Offset 1Ch ...................... 340 15.6.9 Version Register (Register 8) (GMAC_REG_8)—Offset 20h ......................... 341 15.6.10 Debug Register (Register 9) (GMAC_REG_9)—Offset 24h......................... 342 15.6.11 Interrupt Register (Register 14) (GMAC_REG_14)—Offset 38h.................. 343 15.6.12 Interrupt Mask Register (Register 15) (GMAC_REG_15)—Offset 3Ch ......... 344 15.6.13 MAC Address0 High Register (Register 16) (GMAC_REG_16)—Offset 40h ... 345 15.6.14 MAC Address0 Low Register (Register 17) (GMAC_REG_17)—Offset 44h .... 345 15.6.15 MMC Control Register (Register 64) (GMAC_REG_64)—Offset 100h ........... 346 15.6.16 MMC Receive Interrupt Register (MMC_INTR_RX)—Offset 104h ................ 347 15.6.17 MMC Transmit Interrupt Register (MMC_INTR_TX)—Offset 108h ............... 349 15.6.18 MMC Receive Interrupt Mask Register (MMC_INTR_MASK_RX)—Offset 10Ch ................................................... 351 15.6.19 MMC Transmit Interrupt Mask Register (MMC_INTR_MASK_TX)—Offset 110h.................................................... 353 15.6.20 MMC Transmit Good Bad Octet Counter Register (TXOCTETCOUNT_GB)—Offset 114h........................................................ 355 15.6.21 MMC Transmit Good Bad Frame Counter Register (TXFRAMECOUNT_GB)—Offset 118h ....................................................... 355 15.6.22 MMC Transmit Broadcast Good Frame Counter Register (TXBROADCASTFRAMES_G)—Offset 11Ch................................................ 356 15.6.23 MMC Transmit Multicast Good Frame Counter Register (TXMULTICASTFRAMES_G)—Offset 120h ................................................. 356 August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 11 Intel® Quark™ SoC X1000—Contents 15.6.24 MMC Transmit 64 Octet Good Bad Frame Counter Register (TX64OCTETS_GB)—Offset 124h ............................................................ 357 15.6.25 MMC Transmit 65 to 127 Octet Good Bad Frame Counter Register (TX65TO127OCTETS_GB)—Offset 128h ................................................... 357 15.6.26 MMC Transmit 128 to 255 Octet Good Bad Frame Counter Register (TX128TO255OCTETS_GB)—Offset 12Ch ................................................. 358 15.6.27 MMC Transmit 256 to 511 Octet Good Bad Frame Counter Register (TX256TO511OCTETS_GB)—Offset 130h.................................................. 358 15.6.28 MMC Transmit 512 to 1023 Octet Good Bad Frame Counter Register (TX512TO1023OCTETS_GB)—Offset 134h ................................................ 358 15.6.29 MMC Transmit 1024 to Maximum Octet Good Bad Frame Counter Register (TX1024TOMAXOCTETS_GB)—Offset 138h ............................................... 359 15.6.30 MMC Transmit Unicast Good Bad Frame Counter Register (TXUNICASTFRAMES_GB)—Offset 13Ch ................................................... 359 15.6.31 MMC Transmit Multicast Good Bad Frame Counter Register (TXMULTICASTFRAMES_GB)—Offset 140h................................................ 360 15.6.32 MMC Transmit Broadcast Good Bad Frame Counter Register (TXBROADCASTFRAMES_GB)—Offset 144h .............................................. 360 15.6.33 MMC Transmit Underflow Error Frame Counter Register (TXUNDERFLOWERROR)—Offset 148h ..................................................... 361 15.6.34 MMC Transmit Single Collision Good Frame Counter Register (TXSINGLECOL_G)—Offset 14Ch............................................................. 361 15.6.35 MMC Transmit Multiple Collision Good Frame Counter Register (TXMULTICOL_G)—Offset 150h............................................................... 362 15.6.36 MMC Transmit Deferred Frame Counter Register (TXDEFERRED)—Offset 154h ................................................................................................... 362 15.6.37 MMC Transmit Late Collision Frame Counter Register (TXLATECOL)—Offset 158h ................................................................................................... 362 15.6.38 MMC Transmit Excessive Collision Frame Counter Register (TXEXESSCOL)—Offset 15Ch .................................................................. 363 15.6.39 MMC Transmit Carrier Error Frame Counter Register (TXCARRIERERROR)—Offset 160h........................................................... 363 15.6.40 MMC Transmit Good Octet Counter Register (TXOCTETCOUNT_G)—Offset 164h ................................................................................................... 364 15.6.41 MMC Transmit Good Frame Counter Register (TXFRAMECOUNT_G)—Offset 168h ................................................................................................... 364 15.6.42 MMC Transmit Excessive Deferral Frame Counter Register (TXEXCESSDEF)— Offset 16Ch ......................................................................................... 365 15.6.43 MMC Transmit Pause Frame Counter Register (TXPAUSEFRAMES)—Offset 170h ................................................................................................... 365 15.6.44 MMC Transmit VLAN Good Frame Counter Register (TXVLANFRAMES_G)—Offset 174h .......................................................... 366 15.6.45 MMC Transmit Oversize Good Frame Counter Register (TXOVERSIZE_G)—Offset 178h............................................................... 366 15.6.46 MMC Receive Good Bad Frame Counter Register (RXFRAMECOUNT_GB)—Offset 180h........................................................ 366 15.6.47 MMC Receive Good Bad Octet Counter Register (RXOCTETCOUNT_GB)—Offset 184h........................................................ 367 15.6.48 MMC Receive Good Octet Counter Register (RXOCTETCOUNT_G)—Offset 188h ................................................................................................... 367 15.6.49 MMC Receive Broadcast Good Frame Counter Register (RXBROADCASTFRAMES_G)—Offset 18Ch ................................................ 368 15.6.50 MMC Receive Multicast Good Frame Counter Register (RXMULTICASTFRAMES_G)—Offset 190h ................................................. 368 15.6.51 MMC Receive CRC Error Frame Counter Register (RXCRCERROR)—Offset 194h ................................................................................................... 369 Intel® Quark™ SoC X1000 Datasheet 12 August 2015 Document Number: 329676-005US Contents—Intel® Quark™ SoC X1000 15.6.52 MMC Receive Alignment Error Frame Counter Register (RXALIGNMENTERROR)—Offset 198h ...................................................... 369 15.6.53 MMC Receive Runt Frame Counter Register (RXRUNTERROR)—Offset 19Ch 370 15.6.54 MMC Receive Jabber Error Frame Counter Register (RXJABBERERROR)—Offset 1A0h ............................................................ 370 15.6.55 MMC Receive Undersize Good Frame Counter Register (RXUNDERSIZE_G)—Offset 1A4h............................................................ 370 15.6.56 MMC Receive Oversize Good Frame Counter Register (RXOVERSIZE_G)—Offset 1A8h.............................................................. 371 15.6.57 MMC Receive 64 Octet Good Bad Frame Counter Register (RX64OCTETS_GB)—Offset 1ACh ........................................................... 371 15.6.58 MMC Receive 65 to 127 Octet Good Bad Frame Counter Register (RX65TO127OCTETS_GB)—Offset 1B0h................................................... 372 15.6.59 MMC Receive 128 to 255 Octet Good Bad Frame Counter Register (RX128TO255OCTETS_GB)—Offset 1B4h ................................................. 372 15.6.60 MMC Receive 256 to 511 Octet Good Bad Frame Counter Register (RX256TO511OCTETS_GB)—Offset 1B8h ................................................. 373 15.6.61 MMC Receive 512 to 1023 Octet Good Bad Frame Counter Register (RX512TO1023OCTETS_GB)—Offset 1BCh ............................................... 373 15.6.62 MMC Receive 1024 to Maximum Octet Good Bad Frame Counter Register (RX1024TOMAXOCTETS_GB)—Offset 1C0h .............................................. 374 15.6.63 MMC Receive Unicast Good Frame Counter Register (RXUNICASTFRAMES_G)— Offset 1C4h ......................................................................................... 374 15.6.64 MMC Receive Length Error Frame Counter Register (RXLENGTHERROR)—Offset 1C8h ........................................................... 374 15.6.65 MMC Receive Out Of Range Error Frame Counter Register (RXOUTOFRANGETYPE)—Offset 1CCh...................................................... 375 15.6.66 MMC Receive Pause Frame Counter Register (RXPAUSEFRAMES)—Offset 1D0h .................................................................................................. 375 15.6.67 MMC Receive FIFO Overflow Frame Counter Register (RXFIFOOVERFLOW)—Offset 1D4h.......................................................... 376 15.6.68 MMC Receive VLAN Good Bad Frame Counter Register (RXVLANFRAMES_GB)— Offset 1D8h......................................................................................... 376 15.6.69 MMC Receive Watchdog Error Frame Counter Register (RXWATCHDOGERROR)—Offset 1DCh ..................................................... 377 15.6.70 MMC Receive Error Frame Counter Register (RXRCVERROR)—Offset 1E0h .. 377 15.6.71 MMC Receive Control Frame Counter Register (RXCTRLFRAMES_G)—Offset 1E4h .................................................................................................. 378 15.6.72 MMC IPC Receive Checksum Offload Interrupt Mask Register (MMC_IPC_INTR_MASK_RX)—Offset 200h ............................................... 378 15.6.73 MMC Receive Checksum Offload Interrupt Register (MMC_IPC_INTR_RX)—Offset 208h......................................................... 380 15.6.74 MMC Receive IPV4 Good Frame Counter Register (RXIPV4_GD_FRMS)—Offset 210h .......................................................... 382 15.6.75 MMC Receive IPV4 Header Error Frame Counter Register (RXIPV4_HDRERR_FRMS)—Offset 214h ................................................... 383 15.6.76 MMC Receive IPV4 No Payload Frame Counter Register (RXIPV4_NOPAY_FRMS)—Offset 218h ..................................................... 383 15.6.77 MMC Receive IPV4 Fragmented Frame Counter Register (RXIPV4_FRAG_FRMS)—Offset 21Ch ....................................................... 384 15.6.78 MMC Receive IPV4 UDP Checksum Disabled Frame Counter Register (RXIPV4_UDSBL_FRMS)—Offset 220h ..................................................... 384 15.6.79 MMC Receive IPV6 Good Frame Counter Register (RXIPV6_GD_FRMS)—Offset 224h .......................................................... 384 15.6.80 MMC Receive IPV6 Header Error Frame Counter Register (RXIPV6_HDRERR_FRMS)—Offset 228h ................................................... 385 August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 13 Intel® Quark™ SoC X1000—Contents 15.6.81 MMC Receive IPV6 No Payload Frame Counter Register (RXIPV6_NOPAY_FRMS)—Offset 22Ch ..................................................... 385 15.6.82 MMC Receive UDP Good Frame Counter Register (RXUDP_GD_FRMS)—Offset 230h ................................................................................................... 386 15.6.83 MMC Receive UDP Error Frame Counter Register (RXUDP_ERR_FRMS)—Offset 234h .......................................................... 386 15.6.84 MMC Receive TCP Good Frame Counter Register (RXTCP_GD_FRMS)—Offset 238h ................................................................................................... 387 15.6.85 MMC Receive TCP Error Frame Counter Register (RXTCP_ERR_FRMS)—Offset 23Ch................................................................................................... 387 15.6.86 MMC Receive ICMP Good Frame Counter Register (RXICMP_GD_FRMS)—Offset 240h .......................................................... 388 15.6.87 MMC Receive ICMP Error Frame Counter Register (RXICMP_ERR_FRMS)—Offset 244h......................................................... 388 15.6.88 MMC Receive IPV4 Good Octet Counter Register (RXIPV4_GD_OCTETS)—Offset 250h ....................................................... 388 15.6.89 MMC Receive IPV4 Header Error Octet Counter Register (RXIPV4_HDRERR_OCTETS)—Offset 254h ................................................ 389 15.6.90 MMC Receive IPV4 No Payload Octet Counter Register (RXIPV4_NOPAY_OCTETS)—Offset 258h .................................................. 389 15.6.91 MMC Receive IPV4 Fragmented Octet Counter Register (RXIPV4_FRAG_OCTETS)—Offset 25Ch .................................................... 390 15.6.92 MMC Receive IPV4 UDP Checksum Disabled Octet Counter Register (RXIPV4_UDSBL_OCTETS)—Offset 260h .................................................. 390 15.6.93 MMC Receive IPV6 Good Octet Counter Register (RXIPV6_GD_OCTETS)—Offset 264h ....................................................... 391 15.6.94 MMC Receive IPV6 Good Octet Counter Register (RXIPV6_HDRERR_OCTETS)— Offset 268h.......................................................................................... 391 15.6.95 MMC Receive IPV6 Header Error Octet Counter Register (RXIPV6_NOPAY_OCTETS)—Offset 26Ch .................................................. 392 15.6.96 MMC Receive IPV6 No Payload Octet Counter Register (RXUDP_GD_OCTETS)— Offset 270h.......................................................................................... 392 15.6.97 MMC Receive UDP Good Octet Counter Register (RXUDP_ERR_OCTETS)—Offset 274h....................................................... 392 15.6.98 MMC Receive TCP Good Octet Counter Register (RXTCP_GD_OCTETS)—Offset 278h ........................................................ 393 15.6.99 MMC Receive TCP Error Octet Counter Register (RXTCP_ERR_OCTETS)—Offset 27Ch ....................................................... 393 15.6.100 MMC Receive ICMP Good Octet Counter Register (RXICMP_GD_OCTETS)—Offset 280h....................................................... 394 15.6.101 MMC Receive ICMP Error Octet Counter Register (RXICMP_ERR_OCTETS)—Offset 284h ..................................................... 394 15.6.102 VLAN Tag Inclusion or Replacement Register (Register 353) (GMAC_REG_353)—Offset 584h.............................................................. 395 15.6.103 VLAN Hash Table Register (Register 354) (GMAC_REG_354)—Offset 588h 396 15.6.104 Timestamp Control Register (Register 448) (GMAC_REG_448)—Offset 700h ......................................................... 396 15.6.105 Sub-Second Increment Register (Register 449) (GMAC_REG_449)—Offset 704h ................................................................................................... 398 15.6.106 System Time - Seconds Register (Register 450) (GMAC_REG_450)—Offset 708h ................................................................................................... 398 15.6.107 System Time - Nanoseconds Register (Register 451) (GMAC_REG_451)—Offset 70Ch ............................................................. 399 15.6.108 System Time - Seconds Update Register (Register 452) (GMAC_REG_452)— Offset 710h.......................................................................................... 399 15.6.109 System Time - Nanoseconds Update Register (Register 453) (GMAC_REG_453)—Offset 714h.............................................................. 400 Intel® Quark™ SoC X1000 Datasheet 14 August 2015 Document Number: 329676-005US Contents—Intel® Quark™ SoC X1000 15.7 15.6.110 Timestamp Addend Register (Register 454) (GMAC_REG_454)—Offset 718h ......................................................... 400 15.6.111 Target Time Seconds Register (Register 455) (GMAC_REG_455)—Offset 71Ch .................................................................................................. 401 15.6.112 Target Time Nanoseconds Register (Register 456) (GMAC_REG_456)—Offset 720h ............................................................. 401 15.6.113 System Time - Higher Word Seconds Register (Register 457) (GMAC_REG_457)—Offset 724h ............................................................. 402 15.6.114 Timestamp Status Register (Register 458) (GMAC_REG_458)—Offset 728h.......................................................... 403 15.6.115 Bus Mode Register (Register 0) (DMA_REG_0)—Offset 1000h ................. 404 15.6.116 Transmit Poll Demand Register (Register 1) (DMA_REG_1)—Offset 1004h 406 15.6.117 Receive Poll Demand Register (Register 2) (DMA_REG_2)—Offset 1008h.. 406 15.6.118 Receive Descriptor List Address Register (Register 3) (DMA_REG_3)—Offset 100Ch ................................................................................................ 407 15.6.119 Transmit Descriptor List Address Register (Register 4) (DMA_REG_4)—Offset 1010h ................................................................. 407 15.6.120 Status Register (Register 5) (DMA_REG_5)—Offset 1014h...................... 408 15.6.121 Operation Mode Register (Register 6) (DMA_REG_6)—Offset 1018h......... 411 15.6.122 Interrupt Enable Register (Register 7) (DMA_REG_7)—Offset 101Ch........ 414 15.6.123 Missed Frame and Buffer Overflow Counter Register (Register 8) (DMA_REG_8)—Offset 1020h ................................................................. 415 15.6.124 Receive Interrupt Watchdog Timer Register (Register 9) (DMA_REG_9)—Offset 1024h ................................................................. 416 15.6.125 AHB Status Register (Register 11) (DMA_REG_11)—Offset 102Ch ........... 416 15.6.126 Current Host Transmit Descriptor Register (Register 18) (DMA_REG_18)—Offset 1048h ............................................................... 417 15.6.127 Current Host Receive Descriptor Register (Register 19) (DMA_REG_19)—Offset 104Ch ............................................................... 417 15.6.128 Current Host Transmit Buffer Address Register (Register 20) (DMA_REG_20)—Offset 1050h ............................................................... 418 15.6.129 Current Host Receive Buffer Address Register (Register 21) (DMA_REG_21)— Offset 1054h ....................................................................................... 418 15.6.130 HW Feature Register (Register 22) (DMA_REG_22)—Offset 1058h ........... 419 MAC Descriptor Details..................................................................................... 421 15.7.1 Descriptor Overview ............................................................................. 421 15.7.2 Descriptor Endianness .......................................................................... 421 15.7.3 Transmit Descriptor ............................................................................. 421 15.7.4 Receive Descriptor ............................................................................... 427 16.0 USB 2.0 ................................................................................................................. 435 16.1 Signal Descriptions .......................................................................................... 435 16.2 Features ........................................................................................................ 435 16.2.1 USB2.0 Host Controller Features ............................................................ 435 16.2.2 USB2.0 Device Features ........................................................................ 436 16.3 References ..................................................................................................... 436 16.4 Register Map .................................................................................................. 437 16.5 PCI Configuration Registers .............................................................................. 437 16.5.1 USB Device ......................................................................................... 437 16.5.1.1 Vendor ID (VENDOR_ID)—Offset 0h .......................................... 438 16.5.1.2 Device ID (DEVICE_ID)—Offset 2h ............................................ 439 16.5.1.3 Command Register (COMMAND_REGISTER)—Offset 4h ................ 439 16.5.1.4 Status Register (STATUS)—Offset 6h......................................... 440 16.5.1.5 Revision ID and Class Code (REV_ID_CLASS_CODE)—Offset 8h .... 440 16.5.1.6 Cache Line Size (CACHE_LINE_SIZE)—Offset Ch ......................... 441 16.5.1.7 Latency Timer (LATENCY_TIMER)—Offset Dh .............................. 441 16.5.1.8 Header Type (HEADER_TYPE)—Offset Eh ................................... 442 August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 15 Intel® Quark™ SoC X1000—Contents 16.5.1.9 BIST (BIST)—Offset Fh ............................................................ 442 16.5.1.10 Base Address Register (BAR0)—Offset 10h ............................... 443 16.5.1.11 Cardbus CIS Pointer (CARDBUS_CIS_POINTER)—Offset 28h ....... 443 16.5.1.12 Subsystem Vendor ID (SUB_SYS_VENDOR_ID)—Offset 2Ch........ 444 16.5.1.13 Subsystem ID (SUB_SYS_ID)—Offset 2Eh ................................ 444 16.5.1.14 Expansion ROM Base Address (EXP_ROM_BASE_ADR)—Offset 30h ........................................ 444 16.5.1.15 Capabilities Pointer (CAP_POINTER)—Offset 34h ........................ 445 16.5.1.16 Interrupt Line Register (INTR_LINE)—Offset 3Ch ....................... 445 16.5.1.17 Interrupt Pin Register (INTR_PIN)—Offset 3Dh .......................... 446 16.5.1.18 MIN_GNT (MIN_GNT)—Offset 3Eh............................................ 446 16.5.1.19 MAX_LAT (MAX_LAT)—Offset 3Fh ............................................ 446 16.5.1.20 Capability ID (PM_CAP_ID)—Offset 80h .................................... 447 16.5.1.21 Next Capability Pointer (PM_NXT_CAP_PTR)—Offset 81h ............. 447 16.5.1.22 Power Management Capabilities (PMC)—Offset 82h .................... 447 16.5.1.23 Power Management Control/Status Register (PMCSR)—Offset 84h 448 16.5.1.24 PM CSR PCI-to-PCI Bridge Support Extension (PMCSR_BSE)—Offset 86h ....................................................................................... 449 16.5.1.25 Power Management Data Register (DATA_REGISTER)—Offset 87h 449 16.5.1.26 Capability ID (MSI_CAP_ID)—Offset A0h................................... 450 16.5.1.27 Next Capability Pointer (MSI_NXT_CAP_PTR)—Offset A1h ........... 450 16.5.1.28 Message Control (MESSAGE_CTRL)—Offset A2h ......................... 450 16.5.1.29 Message Address (MESSAGE_ADDR)—Offset A4h ....................... 451 16.5.1.30 Message Data (MESSAGE_DATA)—Offset A8h............................ 451 16.5.1.31 Mask Bits for MSI (PER_VEC_MASK)—Offset ACh ....................... 452 16.5.1.32 Pending Bits for MSI (PER_VEC_PEND)—Offset B0h .................... 452 16.5.2 USB EHCI ............................................................................................ 453 16.5.2.1 Vendor ID (VENDOR_ID)—Offset 0h .......................................... 454 16.5.2.2 Device ID (DEVICE_ID)—Offset 2h ............................................ 454 16.5.2.3 Command Register (COMMAND_REGISTER)—Offset 4h ................ 454 16.5.2.4 Status Register (STATUS)—Offset 6h ......................................... 455 16.5.2.5 Revision ID and Class Code (REV_ID_CLASS_CODE)—Offset 8h .... 456 16.5.2.6 Cache Line Size (CACHE_LINE_SIZE)—Offset Ch ......................... 456 16.5.2.7 Latency Timer (LATENCY_TIMER)—Offset Dh .............................. 457 16.5.2.8 Header Type (HEADER_TYPE)—Offset Eh .................................... 457 16.5.2.9 BIST (BIST)—Offset Fh ............................................................ 457 16.5.2.10 Base Address Register (BAR0)—Offset 10h ............................... 458 16.5.2.11 Cardbus CIS Pointer (CARDBUS_CIS_POINTER)—Offset 28h ....... 459 16.5.2.12 Subsystem Vendor ID (SUB_SYS_VENDOR_ID)—Offset 2Ch ....... 459 16.5.2.13 Subsystem ID (SUB_SYS_ID)—Offset 2Eh ................................ 459 16.5.2.14 Expansion ROM Base Address (EXP_ROM_BASE_ADR)—Offset 30h ........................................ 460 16.5.2.15 Capabilities Pointer (CAP_POINTER)—Offset 34h ....................... 460 16.5.2.16 Interrupt Line Register (INTR_LINE)—Offset 3Ch....................... 460 16.5.2.17 Interrupt Pin Register (INTR_PIN)—Offset 3Dh.......................... 461 16.5.2.18 MIN_GNT (MIN_GNT)—Offset 3Eh ........................................... 461 16.5.2.19 MAX_LAT (MAX_LAT)—Offset 3Fh............................................ 462 16.5.2.20 Serial Bus Release Number Register (SBRN)—Offset 60h ............ 462 16.5.2.21 Frame Length Adjustment Register (FLADJ)—Offset 61h............. 462 16.5.2.22 Capability ID (PM_CAP_ID)—Offset 80h ................................... 463 16.5.2.23 Next Capability Pointer (PM_NXT_CAP_PTR)—Offset 81h ............ 463 16.5.2.24 Power Management Capabilities (PMC)—Offset 82h.................... 463 16.5.2.25 Power Management Control/Status Register (PMCSR)—Offset 84h............................................................. 464 16.5.2.26 PM CSR PCI-to-PCI Bridge Support Extension (PMCSR_BSE)—Offset 86h ....................................................................................... 465 16.5.2.27 Power Management Data Register (DATA_REGISTER)—Offset 87h ............................................... 465 16.5.2.28 Capability ID (MSI_CAP_ID)—Offset A0h .................................. 465 16.5.2.29 Next Capability Pointer (MSI_NXT_CAP_PTR)—Offset A1h........... 466 Intel® Quark™ SoC X1000 Datasheet 16 August 2015 Document Number: 329676-005US Contents—Intel® Quark™ SoC X1000 16.6 16.5.2.30 Message Control (MESSAGE_CTRL)—Offset A2h........................ 466 16.5.2.31 Message Address (MESSAGE_ADDR)—Offset A4h...................... 467 16.5.2.32 Message Data (MESSAGE_DATA)—Offset A8h........................... 467 16.5.2.33 Mask Bits for MSI (PER_VEC_MASK)—Offset ACh ...................... 468 16.5.2.34 Pending Bits for MSI (PER_VEC_PEND)—Offset B0h................... 468 16.5.2.35 USB Legacy Support Extended Capability (USBLEGSUP)—Offset C0h ...................................................................................... 468 16.5.2.36 USB Legacy Support Control/Status (USBLEGCTLSTS)—Offset C4h ................................................ 469 16.5.3 USB OHCI ........................................................................................... 471 16.5.3.1 Vendor ID (VENDOR_ID)—Offset 0h .......................................... 472 16.5.3.2 Device ID (DEVICE_ID)—Offset 2h ............................................ 472 16.5.3.3 Command Register (COMMAND_REGISTER)—Offset 4h ................ 473 16.5.3.4 Status Register (STATUS)—Offset 6h......................................... 473 16.5.3.5 Revision ID and Class Code (REV_ID_CLASS_CODE)—Offset 8h .... 474 16.5.3.6 Cache Line Size (CACHE_LINE_SIZE)—Offset Ch ......................... 475 16.5.3.7 Latency Timer (LATENCY_TIMER)—Offset Dh .............................. 475 16.5.3.8 Header Type (HEADER_TYPE)—Offset Eh ................................... 475 16.5.3.9 BIST (BIST)—Offset Fh ............................................................ 476 16.5.3.10 Base Address Register (BAR0)—Offset 10h ............................... 476 16.5.3.11 Cardbus CIS Pointer (CARDBUS_CIS_POINTER)—Offset 28h ....... 477 16.5.3.12 Subsystem Vendor ID (SUB_SYS_VENDOR_ID)—Offset 2Ch........ 477 16.5.3.13 Subsystem ID (SUB_SYS_ID)—Offset 2Eh ................................ 478 16.5.3.14 Expansion ROM Base Address (EXP_ROM_BASE_ADR)—Offset 30h ........................................ 478 16.5.3.15 Capabilities Pointer (CAP_POINTER)—Offset 34h........................ 479 16.5.3.16 Interrupt Line Register (INTR_LINE)—Offset 3Ch ....................... 479 16.5.3.17 Interrupt Pin Register (INTR_PIN)—Offset 3Dh .......................... 479 16.5.3.18 MIN_GNT (MIN_GNT)—Offset 3Eh ........................................... 480 16.5.3.19 MAX_LAT (MAX_LAT)—Offset 3Fh ............................................ 480 16.5.3.20 Capability ID (PM_CAP_ID)—Offset 80h.................................... 480 16.5.3.21 Next Capability Pointer (PM_NXT_CAP_PTR)—Offset 81h ............ 481 16.5.3.22 Power Management Capabilities (PMC)—Offset 82h .................... 481 16.5.3.23 Power Management Control/Status Register (PMCSR)—Offset 84h 482 16.5.3.24 PM CSR PCI-to-PCI Bridge Support Extension (PMCSR_BSE)—Offset 86h....................................................................................... 483 16.5.3.25 Power Management Data Register (DATA_REGISTER)—Offset 87h 483 16.5.3.26 Capability ID (MSI_CAP_ID)—Offset A0h .................................. 483 16.5.3.27 Next Capability Pointer (MSI_NXT_CAP_PTR)—Offset A1h ........... 484 16.5.3.28 Message Control (MESSAGE_CTRL)—Offset A2h ........................ 484 16.5.3.29 Message Address (MESSAGE_ADDR)—Offset A4h ...................... 484 16.5.3.30 Message Data (MESSAGE_DATA)—Offset A8h ........................... 485 16.5.3.31 Mask Bits for MSI (PER_VEC_MASK)—Offset ACh....................... 485 16.5.3.32 Pending Bits for MSI (PER_VEC_PEND)—Offset B0h ................... 486 Memory Mapped Registers ................................................................................ 486 16.6.1 USB Device ......................................................................................... 486 16.6.1.1 IN Endpoint 0 Control Register (ep0_in_ctrl_udc_reg)—Offset 0h .. 489 16.6.1.2 IN Endpoint 0 Status Register (ep0_in_sts_udc_reg)—Offset 4h .... 490 16.6.1.3 IN Endpoint 0 Buffer Size Register (ep0_in_bufsize_udc_reg)—Offset 8h ........................................ 492 16.6.1.4 IN Endpoint 0 Maximum Packet Size Register (ep0_in_mpkt_sz_reg)—Offset Ch............................................. 493 16.6.1.5 IN Endpoint 0 Data Descriptor Pointer Register (ep0_in_desptr_udc_reg)—Offset 14h ....................................... 493 16.6.1.6 IN Endpoint 0 Write Confirmation register (for Slave-Only mode) (ep0_wr_cfrm_udc_reg)—Offset 1Ch ......................................... 494 16.6.1.7 IN Endpoint 1 Control Register (ep1_in_ctrl_udc_reg)—Offset 20h. 494 16.6.1.8 IN Endpoint 1 Status Register (ep1_in_sts_udc_reg)—Offset 24h .. 495 16.6.1.9 IN Endpoint 1 Buffer Size Register (ep1_in_bufsize_udc_reg)—Offset 28h....................................... 497 August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 17 Intel® Quark™ SoC X1000—Contents 16.6.1.10 IN Endpoint 1 Maximum Packet Size Register (ep1_in_mpkt_sz_reg)—Offset 2Ch ........................................... 498 16.6.1.11 IN Endpoint 1 Data Descriptor Pointer Register (ep1_in_desptr_udc_reg)—Offset 34h ........................................ 498 16.6.1.12 IN Endpoint 1 Write Confirmation register (for Slave-Only mode) (ep1_wr_cfrm_udc_reg)—Offset 3Ch ......................................... 499 16.6.1.13 IN Endpoint 2 Control Register (ep2_in_ctrl_udc_reg)—Offset 40h499 16.6.1.14 IN Endpoint 2 Status Register (ep2_in_sts_udc_reg)—Offset 44h . 500 16.6.1.15 IN Endpoint 2 Buffer Size Register (ep2_in_bufsize_udc_reg)—Offset 48h ....................................... 502 16.6.1.16 IN Endpoint 2 Maximum Packet Size Register (ep2_in_mpkt_sz_reg)—Offset 4Ch ........................................... 503 16.6.1.17 IN Endpoint 2 Data Descriptor Pointer Register (ep2_in_desptr_udc_reg)—Offset 54h ........................................ 503 16.6.1.18 IN Endpoint 2 Write Confirmation register (for Slave-Only mode) (ep2_wr_cfrm_udc_reg)—Offset 5Ch ......................................... 504 16.6.1.19 IN Endpoint 3 Control Register (ep3_in_ctrl_udc_reg)—Offset 60h504 16.6.1.20 IN Endpoint 3 Status Register (ep3_in_sts_udc_reg)—Offset 64h . 505 16.6.1.21 IN Endpoint 3 Buffer Size Register (ep3_in_bufsize_udc_reg)—Offset 68h ....................................... 507 16.6.1.22 IN Endpoint 3 Maximum Packet Size Register (ep3_in_mpkt_sz_reg)—Offset 6Ch ........................................... 508 16.6.1.23 IN Endpoint 3 Data Descriptor Pointer Register (ep3_in_desptr_udc_reg)—Offset 74h ........................................ 508 16.6.1.24 IN Endpoint 3 Write Confirmation register (for Slave-Only mode) (ep3_wr_cfrm_udc_reg)—Offset 7Ch ......................................... 509 16.6.1.25 OUT Endpoint 0 Control Register (ep0_out_ctrl_udc_reg)—Offset 200h ..................................................................................... 509 16.6.1.26 OUT Endpoint 0 Status Register (ep0_out_sts_udc_reg)—Offset 204h ..................................................................................... 510 16.6.1.27 OUT Endpoint 0 Receive Packet Frame Number Register (ep0_out_rpf_udc_reg)—Offset 208h ......................................... 512 16.6.1.28 OUT Endpoint 0 Buffer Size Register (ep0_out_bufsize_udc_reg)— Offset 20Ch ............................................................................ 513 16.6.1.29 OUT Endpoint 0 SETUP Buffer Pointer Register (ep0_subptr_udc_reg)—Offset 210h .......................................... 513 16.6.1.30 OUT Endpoint 0 Data Descriptor Pointer Register (ep0_out_desptr_udc_reg)—Offset 214h .................................... 514 16.6.1.31 OUT Endpoint 0 Read Confirmation Register for zero-length OUT data (for Slave-Only mode) (ep0_rd_cfrm_udc_reg)—Offset 21Ch . 514 16.6.1.32 OUT Endpoint 1 Control Register (ep1_out_ctrl_udc_reg)—Offset 220h ..................................................................................... 515 16.6.1.33 OUT Endpoint 1 Status Register (ep1_out_sts_udc_reg)—Offset 224h ..................................................................................... 516 16.6.1.34 OUT Endpoint 1 Receive Packet Frame Number Register (ep1_out_rpf_udc_reg)—Offset 228h ......................................... 518 16.6.1.35 OUT Endpoint 1 Buffer Size Register (ep1_out_bufsize_udc_reg)— Offset 22Ch ............................................................................ 519 16.6.1.36 OUT Endpoint 1 SETUP Buffer Pointer Register (ep1_subptr_udc_reg)—Offset 230h .......................................... 519 16.6.1.37 OUT Endpoint 1 Data Descriptor Pointer Register (ep1_out_desptr_udc_reg)—Offset 234h .................................... 520 16.6.1.38 OUT Endpoint 1 Read Confirmation Register for zero-length OUT data (for Slave-Only mode) (ep1_rd_cfrm_udc_reg)—Offset 23Ch . 520 16.6.1.39 OUT Endpoint 2 Control Register (ep2_out_ctrl_udc_reg)—Offset 240h ..................................................................................... 521 16.6.1.40 OUT Endpoint 2 Status Register (ep2_out_sts_udc_reg)—Offset 244h ..................................................................................... 522 16.6.1.41 OUT Endpoint 2 Receive Packet Frame Number Register (ep2_out_rpf_udc_reg)—Offset 248h ......................................... 524 Intel® Quark™ SoC X1000 Datasheet 18 August 2015 Document Number: 329676-005US Contents—Intel® Quark™ SoC X1000 16.6.1.42 OUT Endpoint 2 Buffer Size Register (ep2_out_bufsize_udc_reg)— Offset 24Ch ........................................................................... 525 16.6.1.43 OUT Endpoint 2 SETUP Buffer Pointer Register (ep2_subptr_udc_reg)—Offset 250h .......................................... 525 16.6.1.44 OUT Endpoint 2 Data Descriptor Pointer Register (ep2_out_desptr_udc_reg)—Offset 254h.................................... 526 16.6.1.45 OUT Endpoint 2 Read Confirmation Register for zero-length OUT data (for Slave-Only mode) (ep2_rd_cfrm_udc_reg)—Offset 25Ch. 526 16.6.1.46 OUT Endpoint 3 Control Register (ep3_out_ctrl_udc_reg)—Offset 260h ..................................................................................... 527 16.6.1.47 OUT Endpoint 3 Status Register (ep3_out_sts_udc_reg)—Offset 264h ..................................................................................... 528 16.6.1.48 OUT Endpoint 3 Receive Packet Frame Number Register (ep3_out_rpf_udc_reg)—Offset 268h......................................... 530 16.6.1.49 OUT Endpoint 3 Buffer Size Register (ep3_out_bufsize_udc_reg)— Offset 26Ch ........................................................................... 531 16.6.1.50 OUT Endpoint 3 SETUP Buffer Pointer Register (ep3_subptr_udc_reg)—Offset 270h .......................................... 531 16.6.1.51 OUT Endpoint 3 Data Descriptor Pointer Register (ep3_out_desptr_udc_reg)—Offset 274h.................................... 532 16.6.1.52 OUT Endpoint 3 Read Confirmation Register for zero-length OUT data (for Slave-Only mode) (ep3_rd_cfrm_udc_reg)—Offset 27Ch. 532 16.6.1.53 Device Configuration Register (d_cfg_udc_reg)—Offset 400h ...... 533 16.6.1.54 Device Control Register (d_ctrl_udc_reg)—Offset 404h .............. 534 16.6.1.55 Device Status Register (d_sts_udc_reg)—Offset 408h................ 536 16.6.1.56 Device Interrupt Register (d_intr_udc_reg)—Offset 40Ch ........... 537 16.6.1.57 Device Interrupt Mask Register (d_intr_msk_udc_reg)—Offset 410h ..................................................................................... 538 16.6.1.58 Endpoints Interrupt Register (ep_intr_udc_reg)—Offset 414h ..... 539 16.6.1.59 Endpoints Interrupt Mask Register (ep_intr_msk_udc_reg)—Offset 418h ..................................................................................... 539 16.6.1.60 Test Mode Register (test_mode_udc_reg)—Offset 41Ch ............. 540 16.6.1.61 Product Release Number Register (revision_udc_reg)—Offset 420h............................................. 541 16.6.1.62 SETUP command address pointer register (udc_desc_addr_udc_reg)—Offset 500h..................................... 541 16.6.1.63 Physical Endpoint 0 Register (udc_ep_ne_udc_reg_0)—Offset 504h ..................................... 542 16.6.1.64 Physical Endpoint 1 Register (udc_ep_ne_udc_reg_1)—Offset 508h ..................................... 542 16.6.1.65 Physical Endpoint 2 Register (udc_ep_ne_udc_reg_2)—Offset 50Ch..................................................................................... 543 16.6.1.66 Physical Endpoint 3 Register (udc_ep_ne_udc_reg_3)—Offset 510h ..................................... 544 16.6.1.67 Physical Endpoint 4 Register (udc_ep_ne_udc_reg_4)—Offset 514h ..................................... 545 16.6.1.68 Physical Endpoint 5 Register (udc_ep_ne_udc_reg_5)—Offset 518h ..................................... 546 16.6.1.69 Physical Endpoint 6 Register (udc_ep_ne_udc_reg_6)—Offset 51Ch..................................................................................... 546 16.6.1.70 RxFIFO Array[0-511] (udc_rx_fifo_reg_array[0-511])—Offset 800h, Count 512, Stride 4h ...................................................... 547 16.6.1.71 TxFIFO 0 Array[0-255] (udc_tx_fifo_reg_0_array[0-255])—Offset 1000h, Count 256, Stride 4h .................................................... 548 16.6.1.72 TxFIFO 1 Array[0-255] (udc_tx_fifo_reg_1_array[0-255])—Offset 1400h, Count 256, Stride 4h .................................................... 548 16.6.1.73 TxFIFO 2 Array[0-255] (udc_tx_fifo_reg_2_array[0-255])—Offset 1800h, Count 256, Stride 4h .................................................... 548 16.6.1.74 TxFIFO 3 Array[0-255] (udc_tx_fifo_reg_3_array[0-255])—Offset 1C00h, Count 256, Stride 4h .................................................... 549 August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 19 Intel® Quark™ SoC X1000—Contents 16.6.2 USB EHCI ............................................................................................ 549 16.6.2.1 Host Controller Interface Version Number and Capability Registers Length (HCCAPBASE)—Offset 0h ............................................... 550 16.6.2.2 Host Controller Structural Parameters (HCSPARAMS)—Offset 4h .... 550 16.6.2.3 Host Controller Capability Parameters (HCCPARAMS)—Offset 8h .... 552 16.6.2.4 USB Command (USBCMD)—Offset 10h....................................... 553 16.6.2.5 USB Status (USBSTS)—Offset 14h ............................................. 555 16.6.2.6 USB Interrupt Enable (USBINTR)—Offset 18h.............................. 557 16.6.2.7 USB Frame Index (FRINDEX)—Offset 1Ch................................... 558 16.6.2.8 4 Gigabyte Memory Segment Selector (CTRLDSSEGMENT)—Offset 20h ....................................................................................... 559 16.6.2.9 Periodic Frame List Base Address (PERIODICLISTBASE)—Offset 24h ....................................................................................... 559 16.6.2.10 Asynchronous List Address (ASYNCLISTADDR)—Offset 28h ......... 560 16.6.2.11 Configure Flag (CONFIGFLAG)—Offset 50h................................ 560 16.6.2.12 Port Status/Control[0-1] (PORTSC[0-1])—Offset 54h, Count 2, Stride 4h................................................................................ 561 16.6.2.13 Programmable Microframe Base Value (INSNREG00)—Offset 90h. 564 16.6.2.14 Programmable Packet Buffer OUT/IN Thresholds (INSNREG01)—Offset 94h ........................................................ 565 16.6.2.15 Programmable Packet Buffer Depth (INSNREG02)—Offset 98h..... 565 16.6.2.16 Programmable Controller Settings (INSNREG03)—Offset 9Ch ...... 566 16.6.2.17 Programmable Controller Settings (INSNREG04)—Offset A0h ...... 567 16.6.2.18 UTMI Configuration (INSNREG05)—Offset A4h........................... 568 16.6.3 USB OHCI............................................................................................ 569 16.6.3.1 OHCI Revision (HCREVISION)—Offset 0h.................................... 570 16.6.3.2 Host Controller Control (HCCONTROL)—Offset 4h ........................ 570 16.6.3.3 Host Controller Command Status (HCCMDSTATUS)—Offset 8h ...... 571 16.6.3.4 Host Controller Interrupt Status (HCINTRSTATUS)—Offset Ch ....... 573 16.6.3.5 Host Controller Interrupt Enable (HCINTRENABLE)—Offset 10h...... 574 16.6.3.6 Host Controller Interrupt Disable (HCINTRDISABLE)—Offset 14h ... 575 16.6.3.7 Host Controller Communication Area (HCHCCA)—Offset 18h ......... 576 16.6.3.8 Host Controller Current Isochronous or Interrupt Endpoint (HCPRDCURED)—Offset 1Ch ..................................................... 577 16.6.3.9 Host Controller Current First Control Endpoint (HCCTRLHEADED)— Offset 20h .............................................................................. 577 16.6.3.10 Host Controller Current Control Endpoint (HCCTRLCURED)—Offset 24h ....................................................................................... 578 16.6.3.11 Host Controller First Bulk Endpoint (HCBULKHEADED)—Offset 28h578 16.6.3.12 Host Controller Current Bulk Endpoint (HCBULKCURED)—Offset 2Ch ....................................................................................... 579 16.6.3.13 Host Controller Last Completed Descriptor (HCDONEHEAD)—Offset 30h ....................................................................................... 580 16.6.3.14 Host Controller Frame Interval (HCFMINTERVAL)—Offset 34h ...... 580 16.6.3.15 Host Controller Remaining Frame (HCFMREMAINING)—Offset 38h 581 16.6.3.16 Host Controller Frame Number (HCFMNUMBER)—Offset 3Ch........ 582 16.6.3.17 Host Controller Periodic List Start (HCPERIODICSTART)—Offset 40h ....................................................................................... 583 16.6.3.18 Host Controller LS Threshold (HCLSTHRESHOLD)—Offset 44h ...... 583 16.6.3.19 Host Controller Root Hub Descriptor A (HCRHDESPA)—Offset 48h 584 16.6.3.20 Host Controller Root Hub Descriptor B (HCRHDESPB)—Offset 4Ch 585 16.6.3.21 Host Controller Root Hub Status (HCRHSTATUS)—Offset 50h....... 586 16.6.3.22 Host Controller Root Hub Port Status (HCRHPORTSTS)—Offset 54h ... 587 17.0 SDIO/SD/eMMC ..................................................................................................... 591 17.1 Signal Descriptions .......................................................................................... 591 17.2 Features ......................................................................................................... 592 17.2.1 SDIO/SD/eMMC Features ....................................................................... 592 17.2.2 SD 3.0/ SDIO 3.0 / eMMC 4.41 Interfaces ................................................ 592 Intel® Quark™ SoC X1000 Datasheet 20 August 2015 Document Number: 329676-005US Contents—Intel® Quark™ SoC X1000 17.3 17.4 17.5 17.6 17.2.2.1 SD 3.0 Bus Topology ............................................................... 592 17.2.2.2 SDIO 3.0 Interface.................................................................. 593 17.2.2.3 eMMC Interface ...................................................................... 594 17.2.3 SDIO/SD/eMMC Host Controller.............................................................. 594 17.2.3.1 SD DMA................................................................................. 595 References ..................................................................................................... 595 Register Map .................................................................................................. 595 PCI Configuration Registers .............................................................................. 596 17.5.1 Vendor ID (VENDOR_ID)—Offset 0h ....................................................... 597 17.5.2 Device ID (DEVICE_ID)—Offset 2h ......................................................... 598 17.5.3 Command Register (COMMAND_REGISTER)—Offset 4h ............................. 598 17.5.4 Status Register (STATUS)—Offset 6h ...................................................... 599 17.5.5 Revision ID and Class Code (REV_ID_CLASS_CODE)—Offset 8h ................. 599 17.5.6 Cache Line Size (CACHE_LINE_SIZE)—Offset Ch ...................................... 600 17.5.7 Latency Timer (LATENCY_TIMER)—Offset Dh ........................................... 600 17.5.8 Header Type (HEADER_TYPE)—Offset Eh ................................................. 601 17.5.9 BIST (BIST)—Offset Fh ......................................................................... 601 17.5.10 Base Address Register (BAR0)—Offset 10h ............................................. 602 17.5.11 Cardbus CIS Pointer (CARDBUS_CIS_POINTER)—Offset 28h..................... 602 17.5.12 Subsystem Vendor ID (SUB_SYS_VENDOR_ID)—Offset 2Ch ..................... 603 17.5.13 Subsystem ID (SUB_SYS_ID)—Offset 2Eh.............................................. 603 17.5.14 Expansion ROM Base Address (EXP_ROM_BASE_ADR)—Offset 30h ............ 603 17.5.15 Capabilities Pointer (CAP_POINTER)—Offset 34h ..................................... 604 17.5.16 Interrupt Line Register (INTR_LINE)—Offset 3Ch .................................... 604 17.5.17 Interrupt Pin Register (INTR_PIN)—Offset 3Dh ....................................... 605 17.5.18 MIN_GNT (MIN_GNT)—Offset 3Eh......................................................... 605 17.5.19 MAX_LAT (MAX_LAT)—Offset 3Fh ......................................................... 605 17.5.20 Capability ID (PM_CAP_ID)—Offset 80h ................................................. 606 17.5.21 Next Capability Pointer (PM_NXT_CAP_PTR)—Offset 81h .......................... 606 17.5.22 Power Management Capabilities (PMC)—Offset 82h ................................. 606 17.5.23 Power Management Control/Status Register (PMCSR)—Offset 84h ............. 607 17.5.24 PM CSR PCI-to-PCI Bridge Support Extension (PMCSR_BSE)—Offset 86h.... 608 17.5.25 Power Management Data Register (DATA_REGISTER)—Offset 87h............. 608 17.5.26 Capability ID (MSI_CAP_ID)—Offset A0h................................................ 609 17.5.27 Next Capability Pointer (MSI_NXT_CAP_PTR)—Offset A1h ........................ 609 17.5.28 Message Control (MESSAGE_CTRL)—Offset A2h ...................................... 609 17.5.29 Message Address (MESSAGE_ADDR)—Offset A4h .................................... 610 17.5.30 Message Data (MESSAGE_DATA)—Offset A8h......................................... 610 17.5.31 Mask Bits for MSI (PER_VEC_MASK)—Offset ACh .................................... 611 17.5.32 Pending Bits for MSI (PER_VEC_PEND)—Offset B0h ................................. 611 Memory Mapped Registers ................................................................................ 612 17.6.1 SDMA System Address Register (SYS_ADR)—Offset 0h.............................. 613 17.6.2 Block Size Register (BLK_SIZE)—Offset 4h .............................................. 614 17.6.3 Block Count Register (BLK_COUNT)—Offset 6h......................................... 615 17.6.4 Argument Register (ARGUMENT)—Offset 8h............................................. 616 17.6.5 Transfer Mode Register (TX_MODE)—Offset Ch......................................... 616 17.6.6 Command Register (CMD)—Offset Eh...................................................... 618 17.6.7 Response Register 0 (RESPONSE0)—Offset 10h........................................ 619 17.6.8 Response Register 2 (RESPONSE2)—Offset 14h........................................ 620 17.6.9 Response Register 4 (RESPONSE4)—Offset 18h........................................ 620 17.6.10 Response Register 6 (RESPONSE6)—Offset 1Ch ...................................... 621 17.6.11 Buffer Data Port Register (BUF_DATA_PORT)—Offset 20h......................... 621 17.6.12 Present State Register (PRE_STATE)—Offset 24h .................................... 622 17.6.13 Host Control Register (HOST_CTL)—Offset 28h ....................................... 627 17.6.14 Power Control Register (PWR_CTL)—Offset 29h ...................................... 628 August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 21 Intel® Quark™ SoC X1000—Contents 17.6.15 17.6.16 17.6.17 17.6.18 17.6.19 17.6.20 17.6.21 17.6.22 17.6.23 17.6.24 17.6.25 17.6.26 17.6.27 17.6.28 17.6.29 17.6.30 Block Gap Control Register (BLK_GAP_CTL)—Offset 2Ah ........................... 628 Clock Control Register (CLK_CTL)—Offset 2Ch......................................... 630 Timeout Control Register (TIMEOUT_CTL)—Offset 2Eh.............................. 632 Software Reset Register (SW_RST)—Offset 2Fh ....................................... 633 Normal Interrupt Status Register (NML_INT_STATUS)—Offset 30h ............. 634 Error Interrupt Status Register (ERR_INT_STATUS)—Offset 32h ................ 636 Normal Interrupt Status Enable (NRM_INT_STATUS_EN)—Offset 34h ......... 638 Error Interrupt Status Enable Register (ERR_INT_STAT_EN)—Offset 36h .... 639 Normal Interrupt Signal Enable Register (NRM_INT_SIG_EN)—Offset 38h ... 640 Error Interrupt Signal Enable Register (ERR_INT_SIG_EN)—Offset 3Ah....... 642 Auto CMD12 Error Status Register (CMD12_ERR_STAT)—Offset 3Ch .......... 643 Host Control 2 Register (HOST_CTRL_2)—Offset 3Eh ............................... 644 Capabilities Register (CAPABILITIES)—Offset 40h .................................... 645 Capabilities Register 2 (CAPABILITIES_2)—Offset 44h .............................. 647 Maximum Current Capabilities Register (MAX_CUR_CAP)—Offset 48h ......... 648 Force Event Register for Auto CMD12 Error Status (FORCE_EVENT_CMD12_ERR_STAT)—Offset 50h ...................................... 649 17.6.31 Force Event Register for Error Interrupt Status (FORCE_EVENT_ERR_INT_STAT)—Offset 52h ........................................... 650 17.6.32 ADMA Error Status Register (ADMA_ERR_STAT)—Offset 54h ..................... 651 17.6.33 ADMA System Address Register (ADMA_SYS_ADDR)—Offset 58h ............... 652 17.6.34 initialization Preset Values Register (3.3v or 1.8v) (PRESET_VALUE_0)—Offset 60h ............................................................. 653 17.6.35 Default Speed Preset Values Register (PRESET_VALUE_1)—Offset 62h ....... 653 17.6.36 High Speed Preset Values Register (PRESET_VALUE_2)—Offset 64h ........... 654 17.6.37 SDR12 Preset Values Register (PRESET_VALUE_3)—Offset 66h.................. 654 17.6.38 SDR25 Preset Values Register (PRESET_VALUE_4)—Offset 68h.................. 655 17.6.39 SDR50 Preset Values Register (PRESET_VALUE_5)—Offset 6Ah ................. 656 17.6.40 SDR104 Preset Values Register (PRESET_VALUE_6)—Offset 6Ch................ 656 17.6.41 DDR50 Preset Values Register (PRESET_VALUE_7)—Offset 6Eh ................. 657 17.6.42 Boot Time-out control register (BOOT_TIMEOUT_CTRL)—Offset 70h........... 658 17.6.43 Debug Selection Register (DEBUG_SEL)—Offset 74h ................................ 658 17.6.44 Shared Bus Control Register (SHARED_BUS)—Offset E0h.......................... 659 17.6.45 SPI Interrupt Support Register (SPI_INT_SUP)—Offset F0h ....................... 660 17.6.46 Slot Interrupt Status Register (SLOT_INT_STAT)—Offset FCh .................... 661 17.6.47 Host Controller Version Register (HOST_CTRL_VER)—Offset FEh................ 661 18.0 High Speed UART ................................................................................................... 663 18.1 Signal Descriptions .......................................................................................... 663 18.2 Features ......................................................................................................... 664 18.2.1 UART Function...................................................................................... 664 18.2.2 Baud Rate Generator............................................................................. 664 18.3 Usage ............................................................................................................ 665 18.3.1 DMA Mode Operation............................................................................. 665 18.3.1.1 Receiver DMA ......................................................................... 665 18.3.1.2 Transmitter DMA ..................................................................... 666 18.3.2 FIFO Interrupt-Mode Operation............................................................... 666 18.3.2.1 Receiver Interrupt ................................................................... 666 18.3.2.2 Transmitter Interrupt............................................................... 666 18.3.3 FIFO Polled-Mode Operation ................................................................... 667 18.3.3.1 Receive Data Service ............................................................... 667 18.3.3.2 Transmit Data Service.............................................................. 667 18.3.4 Autoflow Control ................................................................................... 667 18.3.4.1 RTS (UART Output) ................................................................. 667 18.3.4.2 CTS (UART Input) ................................................................... 668 18.4 Register Map ................................................................................................... 668 Intel® Quark™ SoC X1000 Datasheet 22 August 2015 Document Number: 329676-005US Contents—Intel® Quark™ SoC X1000 18.5 18.6 PCI Configuration Registers .............................................................................. 669 18.5.1 Vendor ID (VENDOR_ID)—Offset 0h ....................................................... 669 18.5.2 Device ID (DEVICE_ID)—Offset 2h ......................................................... 670 18.5.3 Command Register (COMMAND_REGISTER)—Offset 4h ............................. 670 18.5.4 Status Register (STATUS)—Offset 6h ...................................................... 671 18.5.5 Revision ID and Class Code (REV_ID_CLASS_CODE)—Offset 8h ................. 672 18.5.6 Cache Line Size (CACHE_LINE_SIZE)—Offset Ch ...................................... 672 18.5.7 Latency Timer (LATENCY_TIMER)—Offset Dh ........................................... 673 18.5.8 Header Type (HEADER_TYPE)—Offset Eh ................................................. 673 18.5.9 BIST (BIST)—Offset Fh ......................................................................... 673 18.5.10 Base Address Register (BAR0)—Offset 10h............................................. 674 18.5.11 Base Address Register (BAR1)—Offset 14h............................................. 674 18.5.12 Cardbus CIS Pointer (CARDBUS_CIS_POINTER)—Offset 28h .................... 675 18.5.13 Subsystem Vendor ID (SUB_SYS_VENDOR_ID)—Offset 2Ch ..................... 675 18.5.14 Subsystem ID (SUB_SYS_ID)—Offset 2Eh ............................................. 676 18.5.15 Expansion ROM Base Address (EXP_ROM_BASE_ADR)—Offset 30h............ 676 18.5.16 Capabilities Pointer (CAP_POINTER)—Offset 34h ..................................... 676 18.5.17 Interrupt Line Register (INTR_LINE)—Offset 3Ch .................................... 677 18.5.18 Interrupt Pin Register (INTR_PIN)—Offset 3Dh ....................................... 677 18.5.19 MIN_GNT (MIN_GNT)—Offset 3Eh......................................................... 678 18.5.20 MAX_LAT (MAX_LAT)—Offset 3Fh ......................................................... 678 18.5.21 Capability ID (PM_CAP_ID)—Offset 80h ................................................. 678 18.5.22 Next Capability Pointer (PM_NXT_CAP_PTR)—Offset 81h.......................... 679 18.5.23 Power Management Capabilities (PMC)—Offset 82h ................................. 679 18.5.24 Power Management Control/Status Register (PMCSR)—Offset 84h............. 680 18.5.25 PM CSR PCI-to-PCI Bridge Support Extension (PMCSR_BSE)—Offset 86h ... 681 18.5.26 Power Management Data Register (DATA_REGISTER)—Offset 87h ............ 681 18.5.27 Capability ID (MSI_CAP_ID)—Offset A0h ............................................... 681 18.5.28 Next Capability Pointer (MSI_NXT_CAP_PTR)—Offset A1h ........................ 682 18.5.29 Message Control (MESSAGE_CTRL)—Offset A2h...................................... 682 18.5.30 Message Address (MESSAGE_ADDR)—Offset A4h.................................... 682 18.5.31 Message Data (MESSAGE_DATA)—Offset A8h......................................... 683 18.5.32 Mask Bits for MSI (PER_VEC_MASK)—Offset ACh .................................... 683 18.5.33 Pending Bits for MSI (PER_VEC_PEND)—Offset B0h................................. 684 Memory Mapped Registers ................................................................................ 684 18.6.1 UART Registers .................................................................................... 684 18.6.1.1 Receive Buffer / Transmit Holding / Divisor Latch Low (RBR_THR_DLL)—Offset 0h ...................................................... 685 18.6.1.2 Interrupt Enable / Divisor Latch High (IER_DLH)—Offset 4h.......... 685 18.6.1.3 Interrupt Identification / FIFO Control (IIR_FCR)—Offset 8h ......... 686 18.6.1.4 Line Control (LCR)—Offset Ch ................................................... 688 18.6.1.5 MODEM Control (MCR)—Offset 10h ........................................... 688 18.6.1.6 Line Status (LSR)—Offset 14h .................................................. 689 18.6.1.7 MODEM Status (MSR)—Offset 18h............................................. 691 18.6.1.8 Scratchpad (SCR)—Offset 1Ch .................................................. 692 18.6.1.9 UART Status (USR)—Offset 7Ch ................................................ 693 18.6.1.10 Halt Transmission (HTX)—Offset A4h....................................... 693 18.6.1.11 DMA Software Acknowledge (DMASA)—Offset A8h .................... 694 18.6.2 DMA Controller Registers....................................................................... 694 18.6.2.1 Channel 0 Source Address (SAR0)—Offset 0h ............................. 696 18.6.2.2 Channel 0 Destination Address (DAR0)—Offset 8h ....................... 696 18.6.2.3 Channel 0 Linked List Pointer (LLP0)—Offset 10h ........................ 697 18.6.2.4 Channel 0 Control LOWER (CTL0_L)—Offset 18h ......................... 697 18.6.2.5 Channel 0 Control UPPER (CTL0_U)—Offset 1Ch.......................... 699 18.6.2.6 Channel 0 Source Status (SSTAT0)—Offset 20h .......................... 700 18.6.2.7 Channel 0 Destination Status (DSTAT0)—Offset 28h .................... 700 August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 23 Intel® Quark™ SoC X1000—Contents 18.6.2.8 Channel 0 Source Status Address (SSTATAR0)—Offset 30h ........... 701 18.6.2.9 Channel 0 Destination Status Address (DSTATAR0)—Offset 38h..... 701 18.6.2.10 Channel 0 Configuration LOWER (CFG0_L)—Offset 40h .............. 702 18.6.2.11 Channel 0 configuration UPPER (CFG0_U)—Offset 44h ............... 703 18.6.2.12 Channel 0 Source Gather (SGR0)—Offset 48h ........................... 704 18.6.2.13 Channel 0 Destination Scatter (DSR0)—Offset 50h ..................... 705 18.6.2.14 Channel 1 Source Address (SAR1)—Offset 58h .......................... 705 18.6.2.15 Channel 1 Destination Address (DAR1)—Offset 60h .................... 706 18.6.2.16 Channel 1 Linked List Pointer (LLP1)—Offset 68h ....................... 706 18.6.2.17 Channel 1 Control LOWER (CTL1_L)—Offset 70h ........................ 707 18.6.2.18 Channel 1 Control UPPER (CTL1_U)—Offset 74h......................... 709 18.6.2.19 Channel 1 Source Status (SSTAT1)—Offset 78h ......................... 710 18.6.2.20 Channel 1 Destination Status (DSTAT1)—Offset 80h................... 710 18.6.2.21 Channel 1 Source Status Address (SSTATAR1)—Offset 88h ......... 711 18.6.2.22 Channel 1 Destination Status Address (DSTATAR1)—Offset 90h ... 711 18.6.2.23 Channel 1 Configuration LOWER (CFG1_L)—Offset 98h ............... 712 18.6.2.24 Channel 1 configuration UPPER (CFG1_U)—Offset 9Ch ................ 713 18.6.2.25 Channel 1 Source Gather (SGR1)—Offset A0h ........................... 714 18.6.2.26 Channel 1 Destination Scatter (DSR1)—Offset A8h ..................... 714 18.6.2.27 Raw Status for IntTfr Interrupt (RAW_TFR)—Offset 2C0h ............ 715 18.6.2.28 Raw Status for IntBlock Interrupt (RAW_BLOCK)—Offset 2C8h .... 715 18.6.2.29 Raw Status for IntSrcTran Interrupt (RAW_SRC_TRAN)—Offset 2D0h ..................................................................................... 716 18.6.2.30 Raw Status for IntDstTran Interrupt (RAW_DST_TRAN)—Offset 2D8h ..................................................................................... 716 18.6.2.31 Raw Status for IntErr Interrupt (RAW_ERR)—Offset 2E0h............ 717 18.6.2.32 Status for IntTfr Interrupt (STATUS_TFR)—Offset 2E8h .............. 717 18.6.2.33 Status for IntBlock Interrupt (STATUS_BLOCK)—Offset 2F0h ....... 718 18.6.2.34 Status for IntSrcTran Interrupt (STATUS_SRC_TRAN)—Offset 2F8h.......................................... 718 18.6.2.35 Status for IntDstTran Interrupt (STATUS_DST_TRAN)—Offset 300h.......................................... 719 18.6.2.36 Status for IntErr Interrupt (STATUS_ERR)—Offset 308h .............. 719 18.6.2.37 Mask for IntTfr Interrupt (MASK_TFR)—Offset 310h ................... 720 18.6.2.38 Mask for IntBlock Interrupt (MASK_BLOCK)—Offset 318h............ 720 18.6.2.39 Mask for IntSrcTran Interrupt (MASK_SRC_TRAN)—Offset 320h... 721 18.6.2.40 Mask for IntDstTran Interrupt (MASK_DST_TRAN)—Offset 328h... 722 18.6.2.41 Mask for IntErr Interrupt (MASK_ERR)—Offset 330h................... 722 18.6.2.42 Clear for IntTfr Interrupt (CLEAR_TFR)—Offset 338h .................. 723 18.6.2.43 Clear for IntBlock Interrupt (CLEAR_BLOCK)—Offset 340h........... 723 18.6.2.44 Clear for IntSrcTran Interrupt (CLEAR_SRC_TRAN)—Offset 348h.. 724 18.6.2.45 Clear for IntDstTran Interrupt (CLEAR_DST_TRAN)—Offset 350h . 724 18.6.2.46 Clear for IntErr Interrupt (CLEAR_ERR)—Offset 358h.................. 725 18.6.2.47 Combined Interrupt Status (STATUS_INT)—Offset 360h.............. 725 18.6.2.48 Source Software Transaction Request (REQ_SRC_REG)—Offset 368h ..................................................................................... 726 18.6.2.49 Destination Software Transaction Request register (REQ_DST_REG)—Offset 370h .................................................. 726 18.6.2.50 Source Single Transaction Request (SGL_REQ_SRC_REG)—Offset 378h ..................................................................................... 727 18.6.2.51 Destination Single Software Transaction Request (SGL_REQ_DST_REG)—Offset 380h ........................................... 728 18.6.2.52 Source Last Transaction Request (LST_SRC_REG)—Offset 388h ... 728 18.6.2.53 Destination Single Transaction Request (LST_DST_REG)—Offset 390h ..................................................................................... 729 18.6.2.54 DMA Configuration (DMA_CFG_REG)—Offset 398h ..................... 729 18.6.2.55 Channel Enable (CH_EN_REG)—Offset 3A0h .............................. 730 19.0 I2C* Controller/GPIO Controller ............................................................................ 731 19.1 I2C Controller.................................................................................................. 731 Intel® Quark™ SoC X1000 Datasheet 24 August 2015 Document Number: 329676-005US Contents—Intel® Quark™ SoC X1000 19.2 19.3 19.4 19.5 19.1.1 Signal Descriptions ............................................................................... 731 19.1.2 Features ............................................................................................. 731 19.1.2.1 I2C* Protocol.......................................................................... 731 19.1.2.2 I2C* Modes of Operation .......................................................... 732 19.1.2.3 Functional Description ............................................................. 732 19.1.3 Use .................................................................................................... 737 19.1.3.1 Master Mode Operation............................................................ 737 19.1.3.2 Disabling I2C* Controller.......................................................... 737 19.1.4 References .......................................................................................... 738 GPIO Controller............................................................................................... 738 19.2.1 Signal Descriptions ............................................................................... 738 19.2.2 Features ............................................................................................. 738 Register Map .................................................................................................. 738 PCI Configuration Registers .............................................................................. 739 19.4.1 Vendor ID (VENDOR_ID)—Offset 0h ....................................................... 740 19.4.2 Device ID (DEVICE_ID)—Offset 2h ......................................................... 741 19.4.3 Command Register (COMMAND_REGISTER)—Offset 4h ............................. 741 19.4.4 Status Register (STATUS)—Offset 6h ...................................................... 742 19.4.5 Revision ID and Class Code (REV_ID_CLASS_CODE)—Offset 8h ................. 742 19.4.6 Cache Line Size (CACHE_LINE_SIZE)—Offset Ch ...................................... 743 19.4.7 Latency Timer (LATENCY_TIMER)—Offset Dh ........................................... 743 19.4.8 Header Type (HEADER_TYPE)—Offset Eh ................................................. 744 19.4.9 BIST (BIST)—Offset Fh ......................................................................... 744 19.4.10 Base Address Register (BAR0)—Offset 10h............................................. 745 19.4.11 Base Address Register (BAR1)—Offset 14h............................................. 745 19.4.12 Cardbus CIS Pointer (CARDBUS_CIS_POINTER)—Offset 28h .................... 746 19.4.13 Subsystem Vendor ID (SUB_SYS_VENDOR_ID)—Offset 2Ch ..................... 746 19.4.14 Subsystem ID (SUB_SYS_ID)—Offset 2Eh ............................................. 747 19.4.15 Expansion ROM Base Address (EXP_ROM_BASE_ADR)—Offset 30h............ 747 19.4.16 Capabilities Pointer (CAP_POINTER)—Offset 34h ..................................... 747 19.4.17 Interrupt Line Register (INTR_LINE)—Offset 3Ch .................................... 748 19.4.18 Interrupt Pin Register (INTR_PIN)—Offset 3Dh ....................................... 748 19.4.19 MIN_GNT (MIN_GNT)—Offset 3Eh......................................................... 749 19.4.20 MAX_LAT (MAX_LAT)—Offset 3Fh ......................................................... 749 19.4.21 Capability ID (PM_CAP_ID)—Offset 80h ................................................. 749 19.4.22 Next Capability Pointer (PM_NXT_CAP_PTR)—Offset 81h.......................... 750 19.4.23 Power Management Capabilities (PMC)—Offset 82h ................................. 750 19.4.24 Power Management Control/Status Register (PMCSR)—Offset 84h............. 751 19.4.25 PM CSR PCI-to-PCI Bridge Support Extension (PMCSR_BSE)—Offset 86h ... 752 19.4.26 Power Management Data Register (DATA_REGISTER)—Offset 87h ............ 752 19.4.27 Capability ID (MSI_CAP_ID)—Offset A0h ............................................... 752 19.4.28 Next Capability Pointer (MSI_NXT_CAP_PTR)—Offset A1h ........................ 753 19.4.29 Message Control (MESSAGE_CTRL)—Offset A2h...................................... 753 19.4.30 Message Address (MESSAGE_ADDR)—Offset A4h.................................... 754 19.4.31 Message Data (MESSAGE_DATA)—Offset A8h......................................... 754 19.4.32 Mask Bits for MSI (PER_VEC_MASK)—Offset ACh .................................... 754 19.4.33 Pending Bits for MSI (PER_VEC_PEND)—Offset B0h................................. 755 Memory Mapped Registers ................................................................................ 755 19.5.1 I2C* Controller Memory Mapped Registers............................................... 755 19.5.1.1 Control Register (IC_CON)—Offset 0h........................................ 756 19.5.1.2 Master Target Address (IC_TAR)—Offset 4h................................ 757 19.5.1.3 Data Buffer and Command (IC_DATA_CMD)—Offset 10h .............. 758 19.5.1.4 Standard Speed Clock SCL High Count (IC_SS_SCL_HCNT)—Offset 14h....................................................................................... 759 August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 25 Intel® Quark™ SoC X1000—Contents 19.5.1.5 Standard Speed Clock SCL Low Count (IC_SS_SCL_LCNT)—Offset 18h ....................................................................................... 760 19.5.1.6 Fast Speed Clock SCL High Count (IC_FS_SCL_HCNT)—Offset 1Ch 760 19.5.1.7 Fast Speed Clock SCL Low Count (IC_FS_SCL_LCNT)—Offset 20h .. 761 19.5.1.8 Interrupt Status (IC_INTR_STAT)—Offset 2Ch............................. 761 19.5.1.9 Interrupt Mask (IC_INTR_MASK)—Offset 30h .............................. 763 19.5.1.10 Raw Interrupt Status (IC_RAW_INTR_STAT)—Offset 34h ........... 764 19.5.1.11 Receive FIFO Threshold Level (IC_RX_TL)—Offset 38h ............... 766 19.5.1.12 Transmit FIFO Threshold Level (IC_TX_TL)—Offset 3Ch.............. 766 19.5.1.13 Clear Combined and Individual Interrupt (IC_CLR_INTR)—Offset 40h ....................................................................................... 767 19.5.1.14 Clear RX_UNDER Interrupt (IC_CLR_RX_UNDER)—Offset 44h ..... 767 19.5.1.15 Clear RX_OVER Interrupt (IC_CLR_RX_OVER)—Offset 48h ......... 768 19.5.1.16 Clear TX_OVER Interrupt (IC_CLR_TX_OVER)—Offset 4Ch.......... 768 19.5.1.17 Clear RD_REQ Interrupt (IC_CLR_RD_REQ)—Offset 50h............. 769 19.5.1.18 Clear TX_ABRT Interrupt (IC_CLR_TX_ABRT)—Offset 54h........... 769 19.5.1.19 Clear ACTIVITY Interrupt (IC_CLR_ACTIVITY)—Offset 5Ch.......... 770 19.5.1.20 Clear STOP_DET Interrupt (IC_CLR_STOP_DET)—Offset 60h....... 770 19.5.1.21 Clear START_DET Interrupt (IC_CLR_START_DET)—Offset 64h ... 771 19.5.1.22 Enable (IC_ENABLE)—Offset 6Ch ............................................ 771 19.5.1.23 Status (IC_STATUS)—Offset 70h............................................. 772 19.5.1.24 Transmit FIFO Level (IC_TXFLR)—Offset 74h ............................ 773 19.5.1.25 Receive FIFO Level (IC_RXFLR)—Offset 78h.............................. 774 19.5.1.26 SDA Hold (IC_SDA_HOLD)—Offset 7Ch .................................... 774 19.5.1.27 Transmit Abort Source (IC_TX_ABRT_SOURCE)—Offset 80h ....... 775 19.5.1.28 Enable Status (IC_ENABLE_STATUS)—Offset 9Ch...................... 776 19.5.1.29 SS and FS Spike Suppression Limit (IC_FS_SPKLEN)—Offset A0h 777 19.5.2 GPIO Controller Memory Mapped Registers............................................... 777 19.5.2.1 Port A Data (GPIO_SWPORTA_DR)—Offset 0h ............................. 778 19.5.2.2 Port A Data Direction (GPIO_SWPORTA_DDR)—Offset 4h.............. 778 19.5.2.3 Interrupt Enable (GPIO_INTEN)—Offset 30h ............................... 779 19.5.2.4 Interrupt Mask (GPIO_INTMASK)—Offset 34h ............................. 779 19.5.2.5 Interrupt Type (GPIO_INTTYPE_LEVEL)—Offset 38h ..................... 780 19.5.2.6 Interrupt Polarity (GPIO_INT_POLARITY)—Offset 3Ch .................. 781 19.5.2.7 Interrupt Status (GPIO_INTSTATUS)—Offset 40h......................... 781 19.5.2.8 Raw Interrupt Status (GPIO_RAW_INTSTATUS)—Offset 44h.......... 782 19.5.2.9 Debounce Enable (GPIO_DEBOUNCE)—Offset 48h ....................... 782 19.5.2.10 Clear Interrupt (GPIO_PORTA_EOI)—Offset 4Ch ........................ 783 19.5.2.11 Port A External Port (GPIO_EXT_PORTA)—Offset 50h.................. 784 19.5.2.12 Synchronization Level (GPIO_LS_SYNC)—Offset 60h .................. 784 20.0 SPI Interface ........................................................................................................ 787 20.1 Signal Descriptions .......................................................................................... 787 20.2 Features ......................................................................................................... 787 20.2.1 SPI Controller....................................................................................... 787 20.2.1.1 Processor-Initiated Data Transfer .............................................. 788 20.2.1.2 Data Format ........................................................................... 788 20.2.1.3 FIFO Operation ....................................................................... 789 20.2.1.4 Baud Rate Generation .............................................................. 789 20.3 Register Map ................................................................................................... 791 20.4 PCI Configuration Registers ............................................................................... 792 20.4.1 Vendor ID (VENDOR_ID)—Offset 0h ........................................................ 792 20.4.2 Device ID (DEVICE_ID)—Offset 2h .......................................................... 793 20.4.3 Command Register (COMMAND_REGISTER)—Offset 4h .............................. 793 20.4.4 Status Register (STATUS)—Offset 6h....................................................... 794 20.4.5 Revision ID and Class Code (REV_ID_CLASS_CODE)—Offset 8h .................. 795 20.4.6 Cache Line Size (CACHE_LINE_SIZE)—Offset Ch ....................................... 795 20.4.7 Latency Timer (LATENCY_TIMER)—Offset Dh ............................................ 796 20.4.8 Header Type (HEADER_TYPE)—Offset Eh ................................................. 796 Intel® Quark™ SoC X1000 Datasheet 26 August 2015 Document Number: 329676-005US Contents—Intel® Quark™ SoC X1000 20.5 20.4.9 BIST (BIST)—Offset Fh ......................................................................... 796 20.4.10 Base Address Register (BAR0)—Offset 10h ............................................. 797 20.4.11 Cardbus CIS Pointer (CARDBUS_CIS_POINTER)—Offset 28h..................... 798 20.4.12 Subsystem Vendor ID (SUB_SYS_VENDOR_ID)—Offset 2Ch ..................... 798 20.4.13 Subsystem ID (SUB_SYS_ID)—Offset 2Eh.............................................. 798 20.4.14 Expansion ROM Base Address (EXP_ROM_BASE_ADR)—Offset 30h ............ 799 20.4.15 Capabilities Pointer (CAP_POINTER)—Offset 34h ..................................... 799 20.4.16 Interrupt Line Register (INTR_LINE)—Offset 3Ch .................................... 799 20.4.17 Interrupt Pin Register (INTR_PIN)—Offset 3Dh ....................................... 800 20.4.18 MIN_GNT (MIN_GNT)—Offset 3Eh......................................................... 800 20.4.19 MAX_LAT (MAX_LAT)—Offset 3Fh ......................................................... 801 20.4.20 Capability ID (PM_CAP_ID)—Offset 80h ................................................. 801 20.4.21 Next Capability Pointer (PM_NXT_CAP_PTR)—Offset 81h .......................... 801 20.4.22 Power Management Capabilities (PMC)—Offset 82h ................................. 802 20.4.23 Power Management Control/Status Register (PMCSR)—Offset 84h ............. 802 20.4.24 PM CSR PCI-to-PCI Bridge Support Extension (PMCSR_BSE)—Offset 86h.... 803 20.4.25 Power Management Data Register (DATA_REGISTER)—Offset 87h............. 803 20.4.26 Capability ID (MSI_CAP_ID)—Offset A0h................................................ 804 20.4.27 Next Capability Pointer (MSI_NXT_CAP_PTR)—Offset A1h ........................ 804 20.4.28 Message Control (MESSAGE_CTRL)—Offset A2h ...................................... 804 20.4.29 Message Address (MESSAGE_ADDR)—Offset A4h .................................... 805 20.4.30 Message Data (MESSAGE_DATA)—Offset A8h......................................... 805 20.4.31 Mask Bits for MSI (PER_VEC_MASK)—Offset ACh .................................... 806 20.4.32 Pending Bits for MSI (PER_VEC_PEND)—Offset B0h ................................. 806 Memory Mapped Registers ................................................................................ 807 20.5.1 SPI Control Register 0 (SSCR0)—Offset 0h .............................................. 807 20.5.2 SPI Control Register 1 (SSCR1)—Offset 4h .............................................. 808 20.5.3 SPI Status Register (SSSR)—Offset 8h .................................................... 810 20.5.4 SPI Data Register (SSDR)—Offset 10h .................................................... 811 20.5.5 DDS Clock Rate Register (DDS_RATE)—Offset 28h.................................... 812 21.0 Legacy Bridge........................................................................................................ 815 21.1 Features ........................................................................................................ 815 21.2 Register Map .................................................................................................. 816 21.3 PCI Configuration Registers .............................................................................. 817 21.3.1 PCI Device ID and Vendor ID Fields (PCI_DEVICE_VENDOR)—Offset 0h....... 818 21.3.2 PCI Status and Command Fields (PCI_STATUS_COMMAND)—Offset 4h ........ 818 21.3.3 PCI Class Code and Revision ID Fields (PCI_CLASS_REVISION)—Offset 8h ... 819 21.3.4 PCI Miscellaneous Fields (PCI_MISC)—Offset Ch ....................................... 819 21.3.5 PCI Subsystem ID and Subsystem Vendor ID Fields (PCI_SUBSYSTEM)—Offset 2Ch .............................................................. 820 21.3.6 GPIO Base Address (GBA)—Offset 44h .................................................... 821 21.3.7 PM1_BLK Base Address (PM1BLK)—Offset 48h ......................................... 821 21.3.8 GPE0_BLK Base Address (GPE0BLK)—Offset 4Ch ...................................... 821 21.3.9 ACPI Control (ACTL)—Offset 58h ............................................................ 822 21.3.10 PIRQA, PIRQB, PIRQC and PIRQD Routing Control (PABCDRC)—Offset 60h. 822 21.3.11 PIRQE, PIRQF, PIRQG and PIRQH Routing Control (PEFGHRC)—Offset 64h . 824 21.3.12 Watch Dog Timer Base Address (WDTBA)—Offset 84h ............................. 824 21.3.13 BIOS Decode Enable (BCE)—Offset D4h ................................................ 825 21.3.14 BIOS Control (BC)—Offset D8h............................................................. 826 21.3.15 Root Complex Base Address (RCBA)—Offset F0h..................................... 827 21.4 Memory Mapped Registers ................................................................................ 827 21.4.1 Root Complex Register Block ................................................................. 827 21.4.1.1 Root Complex Topology Capabilities List (RCTCL)—Offset 0h......... 828 21.4.1.2 Element Self Description (ESD)—Offset 4h ................................. 828 August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 27 Intel® Quark™ SoC X1000—Contents 21.5 21.6 21.7 21.4.1.3 Interrupt Queue Agent 0 (IRQAGENT0)—Offset 3140h.................. 829 21.4.1.4 Interrupt Queue Agent 1 (IRQAGENT1)—Offset 3142h.................. 829 21.4.1.5 Interrupt Queue Agent 2 (IRQAGENT2)—Offset 3144h.................. 830 21.4.1.6 Interrupt Queue Agent 3 (IRQAGENT3)—Offset 3146h.................. 830 21.4.1.7 RTC Configuration (RC)—Offset 3400h ....................................... 831 IO Registers.................................................................................................... 832 21.5.1 Fixed IO Registers ................................................................................ 832 21.5.1.1 NMI Status and Control Register (NSC)—Offset 61h ..................... 832 21.5.1.2 NMI Enable and RTC Index Register (NMIE)—Offset 70h ............... 833 21.5.1.3 Software SMI Control Port (SWSMICTL)—Offset B2h .................... 833 21.5.1.4 Software SMI Status Port (SWSMISTS)—Offset B3h ..................... 834 21.5.1.5 Reset Control Register (RSTC)—Offset CF9h................................ 834 21.5.2 ACPI GPE0 Block................................................................................... 835 21.5.2.1 GPE0 Status Register (GPE0STS)—Offset 0h ............................... 835 21.5.2.2 GPE0 Enable Register (GPE0EN)—Offset 4h................................. 836 21.5.2.3 SMI Enable Register (SMIEN)—Offset 10h................................... 837 21.5.2.4 SMI Status Register (SMISTS)—Offset 14h ................................. 838 21.5.2.5 General Purpose Event Control Register (GPEC)—Offset 18h ......... 839 21.5.2.6 Power Management Configuration Core Well Register (PMCW)—Offset 28h ................................................................ 839 21.5.2.7 Power Management Configuration Suspend Well Register (PMSW)— Offset 2Ch.............................................................................. 840 21.5.2.8 Power Management Configuration RTC Well Register (PMRW)—Offset 30h ................................................................ 841 21.5.3 ACPI PM1 Block .................................................................................... 841 21.5.3.1 PM1 Status Register (PM1S)—Offset 0h ...................................... 841 21.5.3.2 PM1 Enable Register (PM1E)—Offset 2h...................................... 842 21.5.3.3 PM1 Control Register (PM1C)—Offset 4h ..................................... 843 21.5.3.4 Power Management 1 Timer Register (PM1T)—Offset 8h ............... 844 Legacy GPIO ................................................................................................... 845 21.6.1 Signal Descriptions ............................................................................... 845 21.6.2 Features .............................................................................................. 845 21.6.3 Use..................................................................................................... 845 21.6.4 Register Map ........................................................................................ 846 21.6.5 IO Mapped Registers ............................................................................. 846 21.6.5.1 Core Well GPIO Enable (CGEN)—Offset 0h .................................. 847 21.6.5.2 Core Well GPIO Input/Output Select (CGIO)—Offset 4h ................ 847 21.6.5.3 Core Well GPIO Level for Input or Output (CGLVL)—Offset 8h........ 848 21.6.5.4 Core Well GPIO Trigger Positive Edge Enable (CGTPE)—Offset Ch .. 848 21.6.5.5 Core Well GPIO Trigger Negative Edge Enable (CGTNE)—Offset 10h ....................................................................................... 849 21.6.5.6 Core Well GPIO GPE Enable (CGGPE)—Offset 14h ........................ 849 21.6.5.7 Core Well GPIO SMI Enable (CGSMI)—Offset 18h ........................ 850 21.6.5.8 Core Well GPIO Trigger Status (CGTS)—Offset 1Ch ...................... 850 21.6.5.9 Resume Well GPIO Enable (RGEN)—Offset 20h............................ 851 21.6.5.10 Resume Well GPIO Input/Output Select (RGIO)—Offset 24h ........ 851 21.6.5.11 Resume Well GPIO Level for Input or Output (RGLVL)—Offset 28h 852 21.6.5.12 Resume Well GPIO Trigger Positive Edge Enable (RGTPE)—Offset 2Ch ....................................................................................... 852 21.6.5.13 Resume Well GPIO Trigger Negative Edge Enable (RGTNE)—Offset 30h ....................................................................................... 852 21.6.5.14 Resume Well GPIO GPE Enable (RGGPE)—Offset 34h .................. 853 21.6.5.15 Resume Well GPIO SMI Enable (RGSMI)—Offset 38h .................. 854 21.6.5.16 Resume Well GPIO Trigger Status (RGTS)—Offset 3Ch................ 854 21.6.5.17 Core Well GPIO NMI Enable (CGNMIEN)—Offset 40h................... 855 21.6.5.18 Resume Well GPIO NMI Enable (RGNMIEN)—Offset 44h .............. 855 Legacy SPI Controller ....................................................................................... 856 21.7.1 Signal Descriptions ............................................................................... 856 Intel® Quark™ SoC X1000 Datasheet 28 August 2015 Document Number: 329676-005US Contents—Intel® Quark™ SoC X1000 21.8 21.9 21.7.2 Features ............................................................................................. 856 21.7.3 Register Map ....................................................................................... 856 21.7.4 Legacy SPI Host Interface Registers........................................................ 857 21.7.4.1 SPI Status (SPISTS)—Offset 3020h ........................................... 859 21.7.4.2 SPI Control (SPICTL)—Offset 3022h .......................................... 859 21.7.4.3 SPI Address (SPIADDR)—Offset 3024h ...................................... 860 21.7.4.4 SPI Data 0 - Lower 32 Bits (SPID0_1)—Offset 3028h................... 861 21.7.4.5 SPI Data 0 - Upper 32 Bits (SPID0_2)—Offset 302Ch................... 861 21.7.4.6 SPI Data 1 - Lower 32 Bits (SPID1_1)—Offset 3030h................... 862 21.7.4.7 SPI Data 1 - Upper 32 Bits (SPID1_2)—Offset 3034h ................... 862 21.7.4.8 SPI Data 2 - Lower 32 Bits (SPID2_1)—Offset 3038h................... 862 21.7.4.9 SPI Data 2 - Upper 32 Bits (SPID2_2)—Offset 303Ch................... 863 21.7.4.10 SPI Data 3 - Lower 32 Bits (SPID3_1)—Offset 3040h ................. 863 21.7.4.11 SPI Data 3 - Upper 32 Bits (SPID3_2)—Offset 3044h ................. 863 21.7.4.12 SPI Data 4 - Lower 32 Bits (SPID4_1)—Offset 3048h ................. 864 21.7.4.13 SPI Data 4 - Upper 32 Bits (SPID4_2)—Offset 304Ch ................. 864 21.7.4.14 SPI Data 5 - Lower 32 Bits (SPID5_1)—Offset 3050h ................. 865 21.7.4.15 SPI Data 5 - Upper 32 Bits (SPID5_2)—Offset 3054h ................. 865 21.7.4.16 SPI Data 6 - Lower 32 Bits (SPID6_1)—Offset 3058h ................. 865 21.7.4.17 SPI Data 6 - Upper 32 Bits (SPID6_2)—Offset 305Ch ................. 866 21.7.4.18 SPI Data 7 - Lower 32 Bits (SPID7_1)—Offset 3060h ................. 866 21.7.4.19 SPI Data 7 - Upper 32 Bits (SPID7_2)—Offset 3064h ................. 866 21.7.4.20 BIOS Base Address (BBAR)—Offset 3070h ................................ 867 21.7.4.21 Prefix Opcode Configuration (PREOP)—Offset 3074h .................. 867 21.7.4.22 Opcode Type Configuration (OPTYPE)—Offset 3076h .................. 868 21.7.4.23 Opcode Menu Configuration - Lower 32 Bits (OPMENU_1)—Offset 3078h ................................................................................... 869 21.7.4.24 Opcode Menu Configuration - Upper 32 Bits (OPMENU_2)—Offset 307Ch ................................................................................... 869 21.7.4.25 Protected BIOS Range 0 (PBR0)—Offset 3080h ......................... 870 21.7.4.26 Protected BIOS Range 1 (PBR1)—Offset 3084h ......................... 871 21.7.4.27 Protected BIOS Range 2 (PBR2)—Offset 3088h ......................... 871 8254 Programmable Interval Timer.................................................................... 873 21.8.1 Features ............................................................................................. 873 21.8.1.1 Counter 0, System Timer ......................................................... 873 21.8.1.2 Counter 1, Refresh Request Signal ............................................ 873 21.8.1.3 Counter 2, Speaker Tone ......................................................... 873 21.8.2 Use .................................................................................................... 873 21.8.2.1 Timer Programming ................................................................ 873 21.8.2.2 Reading from the Interval Timer ............................................... 874 21.8.3 Register Map ....................................................................................... 875 21.8.4 Timer I/O Registers .............................................................................. 876 21.8.4.1 Counter 0 Interval Time Status Byte Format (C0TS)—Offset 40h ... 877 21.8.4.2 Counter 1 Interval Time Status Byte Format (C1TS)—Offset 41h ... 877 21.8.4.3 Counter 2 Interval Time Status Byte Format (C2TS)—Offset 42h ... 878 21.8.4.4 Timer Control Word Register (TCW)—Offset 43h ......................... 879 21.8.4.5 Counter 0 Counter Access Port Register (C0AP)—Offset 50h ......... 879 21.8.4.6 Counter 1 Counter Access Port Register (C1AP)—Offset 51h ......... 880 21.8.4.7 Counter 2 Counter Access Port Register (C2AP)—Offset 52h ......... 880 High Precision Event Timer (HPET)..................................................................... 880 21.9.1 Features ............................................................................................. 881 21.9.1.1 Non-Periodic Mode - All Timers ................................................. 881 21.9.1.2 Periodic Mode - Timer 0 Only.................................................... 881 21.9.1.3 Interrupts .............................................................................. 882 21.9.2 Register Map ....................................................................................... 882 21.9.3 Memory Mapped Registers..................................................................... 883 21.9.3.1 General Capabilities and ID Register - Lower 32 Bits (GCID_1)—Offset 0h ............................................................... 884 August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 29 Intel® Quark™ SoC X1000—Contents 21.9.3.2 General Capabilities and ID Register - Upper 32 Bits (GCID_2)—Offset 4h................................................................ 885 21.9.3.3 General Configuration (GC)—Offset 10h ..................................... 885 21.9.3.4 General Interrupt Status Register (GIS)—Offset 20h .................... 885 21.9.3.5 Main Counter Value Register - Lower 32 Bits (MCV_1)—Offset F0h . 886 21.9.3.6 Main Counter Value Register - Upper 32 Bits (MCV_2)—Offset F4h . 886 21.9.3.7 Timer 0 Config and Capabilities Register - Lower 32 Bits (T0C_1)—Offset 100h .............................................................. 887 21.9.3.8 Timer 0 Config and Capabilities Register - Upper 32 Bits (T0C_2)—Offset 104h .............................................................. 888 21.9.3.9 Timer 0 Comparator Value Register - Lower 32 Bits (T0CV_1)—Offset 108h ............................................................ 888 21.9.3.10 Timer 0 Comparator Value Register - Upper 32 Bits (T0CV_2)—Offset 10Ch ............................................................ 888 21.9.3.11 Timer 1 Config and Capabilities Register - Lower 32 Bits (T1C_1)— Offset 120h ............................................................................ 889 21.9.3.12 Timer 1 Config and Capabilities Register - Upper 32 Bits (T1C_2)— Offset 124h ............................................................................ 890 21.9.3.13 Timer 1 Comparator Value Register (T1CV_1)—Offset 128h......... 890 21.9.3.14 Timer 2 Config and Capabilities Register - Lower 32 Bits (T2C_1)— Offset 140h ............................................................................ 890 21.9.3.15 Timer 2 Config and Capabilities Register - Upper 32 Bits (T2C_2)— Offset 144h ............................................................................ 891 21.9.3.16 Timer 2 Comparator Value Register (T2CV_1)—Offset 148h......... 892 21.9.4 References........................................................................................... 892 21.10 Real Time Clock (RTC)...................................................................................... 892 21.10.1 Signal Descriptions .............................................................................. 892 21.10.2 Features ............................................................................................ 893 21.10.2.1 Update Cycles ....................................................................... 893 21.10.2.2 Interrupts............................................................................. 893 21.10.2.3 Lockable RAM Ranges ............................................................ 893 21.10.3Register Map ........................................................................................ 894 21.10.4I/O Registers ....................................................................................... 894 21.10.5Indexed Registers ................................................................................. 895 21.10.5.1 Offset 0Ah: Register A............................................................ 896 21.10.5.2 Offset 0Bh: Register B - General Configuration .......................... 896 21.10.5.3 Offset 0Ch: Register C - Flag Register ...................................... 897 21.10.5.4 Offset 0Dh: Register D - Flag Register ...................................... 898 21.10.6References........................................................................................... 898 21.11 Interrupt Decoding & Routing ............................................................................ 898 21.11.1Features .............................................................................................. 898 21.11.1.1 Interrupt Decoder .................................................................. 898 21.11.1.2 Interrupt Router .................................................................... 899 21.12 8259 Programmable Interrupt Controllers (PIC) ................................................... 899 21.12.1Features .............................................................................................. 900 21.12.1.1 Interrupt Handling ................................................................. 900 21.12.1.2 Initialization Command Words (ICWx) ...................................... 902 21.12.1.3 Operation Command Words (OCW) .......................................... 903 21.12.1.4 Modes of Operation................................................................ 903 21.12.1.5 Masking Interrupts ................................................................ 905 21.12.1.6 Steering of PCI Interrupts....................................................... 905 21.12.2Register Map ........................................................................................ 905 21.12.3I/O Registers ....................................................................................... 906 21.12.3.1 Master Initialization Command Word 1 (MICW1)—Offset 20h ....... 908 21.12.3.2 Master Initialization Command Word 2 (MICW2)—Offset 21h ....... 909 21.12.3.3 Master Operational Control Word 2 (MOCW2)—Offset 24h ........... 909 21.12.3.4 Master Initialization Command Word 3 (MICW3)—Offset 25h ....... 910 21.12.3.5 Master Operational Control Word 3 (MOCW3)—Offset 28h ........... 910 Intel® Quark™ SoC X1000 Datasheet 30 August 2015 Document Number: 329676-005US Contents—Intel® Quark™ SoC X1000 21.12.3.6 Master Initialization Command Word 4 (MICW4)—Offset 29h ...... 911 21.12.3.7 Master Operational Control Word 1 (MOCW1)—Offset 2Dh .......... 912 21.12.3.8 Slave Initialization Command Word 1 (SICW1)—Offset A0h ........ 912 21.12.3.9 Slave Initialization Command Word 2 (SICW2)—Offset A1h ........ 913 21.12.3.10 Slave Operational Control Word 2 (SoCW2)—Offset A4h............ 913 21.12.3.11 Slave Initialization Command Word 3 (SICW3)—Offset A5h ....... 914 21.12.3.12 Slave Operational Control Word 3 (SoCW3)—Offset A8h............ 914 21.12.3.13 Slave Initialization Command Word 4 (SICW4)—Offset A9h ....... 915 21.12.3.14 Slave Operational Control Word 1 (SoCW1)—Offset ADh ........... 916 21.12.3.15 Master Edge/Level Control (ELCR1)—Offset 4D0h..................... 916 21.12.3.16 Slave Edge/Level Control (ELCR2)—Offset 4D1h ...................... 916 21.13 I/O APIC ........................................................................................................ 918 21.13.1Features ............................................................................................. 918 21.13.2Use .................................................................................................... 919 21.13.3Unsupported Modes .............................................................................. 919 21.13.4Register Map ....................................................................................... 920 21.13.5Memory Mapped Registers..................................................................... 920 21.13.5.1 Index Register (IDX)—Offset FEC00000h .................................. 921 21.13.5.2 Window Register (WDW)—Offset FEC00010h............................. 921 21.13.5.3 End of Interrupt Register (EOI)—Offset FEC00040h.................... 921 21.13.6Index Registers.................................................................................... 922 21.13.6.1 Identification Register (ID)—Offset 0h ..................................... 922 21.13.6.2 Version Register (VS)—Offset 1h ............................................. 923 21.13.6.3 Redirection Table Entry Lower (RTE[0-23]L)—Offset 10h - 3Eh.... 923 21.13.6.4 Redirection Table Entry Upper (RTE[0-23]U)—Offset 11h - 3Fh ... 924 21.14 Watchdog Timer.............................................................................................. 926 21.14.1Features ............................................................................................. 926 21.14.2Use .................................................................................................... 926 21.14.3Register Map ....................................................................................... 927 21.14.4I/O Mapped Registers ........................................................................... 927 21.14.4.1 Preload Value 1 Register 0 (PV1R0)—Offset 0h ......................... 928 21.14.4.2 Preload Value 1 Register 1 (PV1R1)—Offset 1h ......................... 928 21.14.4.3 Preload Value 1 Register 2 (PV1R2)—Offset 2h ......................... 929 21.14.4.4 Preload Value 2 Register 0 (PV2R0)—Offset 4h ......................... 929 21.14.4.5 Preload Value 2 Register 1 (PV2R1)—Offset 5h ......................... 930 21.14.4.6 Preload Value 2 Register 2 (PV2R2)—Offset 6h ......................... 930 21.14.4.7 Reload Register 0 (RR0)—Offset Ch ......................................... 930 21.14.4.8 Reload Register 1 (RR1)—Offset Dh......................................... 931 21.14.4.9 WDT Configuration Register (WDTCR)—Offset 10h .................... 931 21.14.4.10 WDT Lock Register (WDTLR)—Offset 18h ................................ 932 22.0 Debug Port and JTAG/TAP ..................................................................................... 935 22.1 Signal Descriptions .......................................................................................... 935 22.2 Features ........................................................................................................ 936 22.2.1 OpenOCD ............................................................................................ 936 Figures 1 2 3 4 5 6 7 Block Diagram ......................................................................................................... 38 Intel® Quark™ SoC X1000 PCI View............................................................................ 43 Signals In Default System Pin List .............................................................................. 46 Intel® Quark™ SoC X1000 Package Dimensions............................................................ 59 PCI Express Transmitter Eye...................................................................................... 76 PCI Express Receiver Eye .......................................................................................... 76 USB Rise and Fall Time ............................................................................................. 78 August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 31 Intel® Quark™ SoC X1000—Contents 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 USB Jitter................................................................................................................79 USB EOP Width ........................................................................................................79 SPI Interface Timing .................................................................................................81 SDIO Interface Timing ..............................................................................................82 Measurement Points for Differential Clocks...................................................................84 Physical Address Space - Low DRAM & MMIO................................................................92 Physical Address Space - MMIO ..................................................................................93 Physical Address Space - DOS DRAM...........................................................................94 Physical Address Space - SMM Range ..........................................................................95 Bus 0 PCI Devices and Functions ................................................................................98 Message Bus with PCI Space ......................................................................................99 SoC Platform Clocking ............................................................................................. 102 RTC Power Well Timing Diagrams ............................................................................. 115 Power Up Sequence ................................................................................................ 117 Power-Up Sequence without G2/G3........................................................................... 118 eSRAM 4KB Page Mapping ....................................................................................... 128 eSRAM 512KB Page Mapping.................................................................................... 129 Intel® Quark™ SoC X1000 Host Bridge Register Map ................................................... 132 Register Map.......................................................................................................... 236 PCI Express Register Map ........................................................................................ 264 Ethernet Register Map............................................................................................. 311 Transmit Descriptor Fields ....................................................................................... 422 Transmit Descriptor Fetch (Read) ............................................................................. 423 Receive Descriptor Fields ......................................................................................... 427 USB Register Map................................................................................................... 437 SD Memory Card Bus Topology................................................................................. 593 SDIO Card Bus Topology ......................................................................................... 593 eMMC Interface ...................................................................................................... 594 SDIO/SD/eMMC Register Map................................................................................... 596 UART Data Transfer Flow ......................................................................................... 664 HSUART Register Map ............................................................................................. 668 Data Transfer on the I2C* Bus.................................................................................. 733 START and STOP Conditions..................................................................................... 733 7-Bit Address Format .............................................................................................. 734 10-bit Address Format ............................................................................................ 734 Master Transmitter Protocol ..................................................................................... 735 Master Receiver Protocol ......................................................................................... 736 START Byte Transfer ............................................................................................... 736 I2C*/GPIO Register Map.......................................................................................... 739 Generic SPI Waveform ............................................................................................ 788 SPI Register Map .................................................................................................... 791 Legacy Bridge Register Map ..................................................................................... 817 Legacy GPIO Register Map ....................................................................................... 846 Legacy SPI Register Map ......................................................................................... 857 8254 Timers Register Map ....................................................................................... 876 HPET Register Map ................................................................................................. 883 RTC Register Map ................................................................................................... 894 8259 Register Map.................................................................................................. 906 Detailed I/O APIC Block Diagram .............................................................................. 918 MSI Address and Data............................................................................................. 919 I/O APIC Register Map ............................................................................................ 920 Watchdog Timer Register Map .................................................................................. 927 Tables Intel® Quark™ SoC X1000 Datasheet 32 August 2015 Document Number: 329676-005US Contents—Intel® Quark™ SoC X1000 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 Industry Specifications.............................................................................................. 37 Component Identification .......................................................................................... 42 Intel® Quark™ SoC X1000 Device ID .......................................................................... 44 I/O Power Well Definitions......................................................................................... 47 Buffer Type Definitions ............................................................................................. 47 Default Buffer State Definitions .................................................................................. 47 System Memory Signals............................................................................................ 48 PCI Express* 2.0 Signals........................................................................................... 48 Ethernet Interface Signals ......................................................................................... 49 USB 2.0 Interface Signals ......................................................................................... 49 Integrated Clock Interface Signals.............................................................................. 50 SD/SDIO/MMC Signals .............................................................................................. 50 High Speed UART Signals .......................................................................................... 51 I2C* Signals ............................................................................................................ 51 Legacy SPI Signals ................................................................................................... 52 SPI Signals ............................................................................................................. 52 Real Time Clock (RTC) Interface Signals...................................................................... 53 Power Management Interface Signals.......................................................................... 53 JTAG and Debug Interface Signals .............................................................................. 54 Legacy Interface Signals ........................................................................................... 54 General Purpose I/O Signals ..................................................................................... 54 Power and Ground Pins ............................................................................................. 55 Hardware Straps ...................................................................................................... 57 Alphabetical Ball Listing ............................................................................................ 60 Alphabetical Signal Listing ......................................................................................... 64 Intel® Quark™ SoC X1000 Absolute Maximum Voltage Ratings ....................................... 69 Power Supply Rail Ranges ......................................................................................... 70 Maximum Supply Current: ICC Max ............................................................................ 71 Configurable IO (CFIO) Bi-directional Signal Groupings ................................................. 72 CFIO DC Characteristics ............................................................................................ 73 CFIO AC Characteristics ............................................................................................ 73 RTC DC Characteristics ............................................................................................. 74 PCI Express* 2.0 Differential Signal DC Characteristics ................................................. 74 PCI Express* 2.0 Interface Timings ............................................................................ 75 USB 2.0 Differential Signal DC Characteristics .............................................................. 77 USB 2.0 Interface Timings......................................................................................... 77 Legacy SPI Interface Timings (20 MHz) ....................................................................... 79 SPI0/1 Interface Timings (25 MHz)............................................................................. 80 SDIO Timing ........................................................................................................... 81 Reference Clocks AC Characteristics ........................................................................... 82 Fixed I/O Register Access Method Example (NSC Register) ............................................ 85 Fixed Memory Mapped Register Access Method Example (IDX Register)........................... 85 Referenced I/O Register Access Method Example (PM1S Register) .................................. 86 Memory Mapped Register Access Method Example (ESD Register) .................................. 86 PCI Register Access Method Example (PCI_DEVICE_VENDOR Register)............................ 86 PCI CONFIG_ADDRESS Register (I/O PORT CF8h) Mapping ............................................ 87 PCI Configuration Memory Bar Mapping....................................................................... 87 MCR Description ...................................................................................................... 88 MCRX Description..................................................................................................... 88 Register Access Types and Definitions......................................................................... 89 Fixed Memory Ranges in the Legacy Bridge ................................................................. 95 Fixed I/O Ranges in the Legacy Bridge ........................................................................ 96 Movable I/O Ranges Decoded by PCI Devices on the I/O Fabric ...................................... 96 PCI Devices and Functions......................................................................................... 97 August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 33 Intel® Quark™ SoC X1000—Contents 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 Message Types.........................................................................................................99 Intel® Quark™ SoC X1000 Clock Inputs ..................................................................... 103 Intel® Quark™ SoC X1000 Clock Outputs ................................................................... 103 Power Management ................................................................................................ 105 General Power States for System.............................................................................. 107 ACPI PM State Transition Rules................................................................................. 107 Processor Core/ States Support ................................................................................ 108 Main Memory States ............................................................................................... 108 PCIe* States.......................................................................................................... 108 G, S and C State Combinations................................................................................. 109 RTC Power Well Timing Parameters ........................................................................... 115 S4/S5 to S0 Timing Parameters................................................................................ 119 Intel® Quark™ SoC X1000 S3 Wake Events ................................................................ 121 SoC Reset Events ................................................................................................... 121 Thermal Sensor Signals ........................................................................................... 123 Summary of PCI Configuration Registers—0/0/0 ......................................................... 132 Summary of I/O Registers—PMBA............................................................................. 138 Summary of Message Bus Registers—0x00 ................................................................ 140 Summary of Message Bus Registers—0x03 ................................................................ 145 Summary of Message Bus Registers—0x04 ................................................................ 174 Summary of Message Bus Registers—0x05 ................................................................ 180 Summary of Message Bus Registers—0x05 ................................................................ 228 Summary of Message Bus Registers—0x31 ................................................................ 229 Memory Signals...................................................................................................... 233 Supported DDR3 DRAM Devices................................................................................ 235 Supported DDR3 Memory Configurations ................................................................... 235 Summary of Message Bus Registers—0x01 ................................................................ 236 PCI Express* 2.0 Signals ......................................................................................... 261 Possible Interrupts Generated From Events/Packets .................................................... 262 Summary of PCI Configuration Registers—0/23/0 ....................................................... 264 10/100 Ethernet Interface Signals ............................................................................ 309 Summary of PCI Configuration Registers—0/20/6 ....................................................... 311 Summary of Memory Mapped I/O Registers—BAR0 ..................................................... 327 Transmit Descriptor Word 0 (TDES0)......................................................................... 423 Transmit Descriptor Word 1 (TDES1)......................................................................... 426 Transmit Descriptor 2 (TDES2) ................................................................................. 426 Transmit Descriptor 3 (TDES3) ................................................................................. 426 Transmit Descriptor 6 (TDES6) ................................................................................. 426 Transmit Descriptor 7 (TDES7) ................................................................................. 427 Receive Descriptor Fields (RDES0) ............................................................................ 428 Receive Descriptor Fields 1 (RDES1) ......................................................................... 429 Receive Descriptor Fields 2 (RDES2) ......................................................................... 430 Receive Descriptor Fields 3 (RDES3) ......................................................................... 430 Receive Descriptor Fields 4 (RDES4) ......................................................................... 431 Receive Descriptor Fields 6 (RDES6) ......................................................................... 433 Receive Descriptor Fields 7 (RDES7) ......................................................................... 433 Signals.................................................................................................................. 435 Summary of PCI Configuration Registers—0/20/2 ....................................................... 437 Summary of PCI Configuration Registers—0/20/3 ....................................................... 453 Summary of PCI Configuration Registers—0/20/4 ....................................................... 471 Summary of Memory Mapped I/O Registers—BAR0 ..................................................... 486 Summary of Memory Mapped I/O Registers—BAR0 ..................................................... 549 Summary of Memory Mapped I/O Registers—BAR0 ..................................................... 569 SDIO/SD/eMMC Interface Signals ............................................................................. 591 SDIO/SD/eMMC Features......................................................................................... 592 Intel® Quark™ SoC X1000 Datasheet 34 August 2015 Document Number: 329676-005US Contents—Intel® Quark™ SoC X1000 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 Summary of PCI Configuration Registers—0/20/0 ....................................................... 596 Summary of Memory Mapped I/O Registers—BAR0 ..................................................... 612 UART 0 Interface Signals......................................................................................... 663 UART 1 Interface Signals......................................................................................... 663 Baud Rates Achievable with Different DLAB Settings ................................................... 664 Summary of PCI Configuration Registers—0/20/1 ....................................................... 669 Summary of Memory Mapped I/O Registers—BAR0 ..................................................... 684 Summary of Memory Mapped I/O Registers—BAR1 ..................................................... 694 I2C* Signals .......................................................................................................... 731 I2C* Definition of Bits in First Byte ........................................................................... 734 GPIO Signals ......................................................................................................... 738 Summary of PCI Configuration Registers—0/21/2 ....................................................... 739 Summary of Memory Mapped I/O Registers—BAR0 ..................................................... 755 Summary of Memory Mapped I/O Registers—BAR1 ..................................................... 777 SPI Interface Signals .............................................................................................. 787 SPI Clock Frequency Settings .................................................................................. 790 Summary of PCI Configuration Registers—0/21/0 ....................................................... 792 Summary of Memory Mapped I/O Registers—BAR0 ..................................................... 807 Miscellaneous Legacy Signals................................................................................... 816 Summary of PCI Configuration Registers—0/31/0 ....................................................... 817 Summary of Memory Mapped I/O Registers—RCBA..................................................... 827 Summary of I/O Registers....................................................................................... 832 Summary of I/O Registers—GPE0BLK ....................................................................... 835 Summary of I/O Registers—PM1BLK ......................................................................... 841 Legacy GPIO Signals............................................................................................... 845 Summary of I/O Registers—GBA .............................................................................. 846 Legacy SPI Signals ................................................................................................. 856 Summary of Memory Mapped I/O Registers—RCBA..................................................... 858 Counter Operating Modes........................................................................................ 874 Register Aliases ..................................................................................................... 876 8254 Interrupt Mapping .......................................................................................... 882 Summary of Memory Mapped I/O Registers—0xFED00000........................................... 883 RTC Signals........................................................................................................... 893 I/O Registers Alias Locations ................................................................................... 895 Indexed Registers .................................................................................................. 895 IRQAGENT Description ............................................................................................ 899 Interrupt Controller Connections .............................................................................. 900 Interrupt Status Registers ....................................................................................... 901 Content of Interrupt Vector Byte .............................................................................. 901 8259 I/O Registers Alias Locations ........................................................................... 907 Summary of I/O Registers....................................................................................... 907 I/O APIC Memory Mapped Registers ......................................................................... 921 Index Registers ..................................................................................................... 922 Summary of I/O Registers—WDTBA.......................................................................... 927 Debug Port and JTAG/TAP Signals ............................................................................ 935 August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 35 Intel® Quark™ SoC X1000—Revision History Revision History Date Revision August 2015 005 • • Updated Section 18.3.1, “DMA Mode Operation” on page 665 Updated Section 18.3.4, “Autoflow Control” on page 667 November 2014 004 • • Updated Section 9.2.3, “AC Power Applied: G3 to S4/S5 State Transition” on page 115 Updated Section 9.2.4, “Using PWR_BTN_B: Transition from S4/S5 to S0” on page 116 003 • • • • • • • • Updated Updated Updated Updated Updated Updated Updated Updated August 2014 Description Table 23, “Hardware Straps” on page 57 subsection numbering under Section 12.6.2, “SPI DMA Block” on page 140 Table 27, “Power Supply Rail Ranges” on page 70 Table 28, “Maximum Supply Current: ICC Max” on page 71 Table 33, “RTC DC Characteristics” on page 74 Table 36, “USB 2.0 Differential Signal DC Characteristics” on page 77 Table 66, “RTC Power Well Timing Parameters” on page 115 Table 110, “SDIO/SD/eMMC Features” on page 592 May 2014 002 Updated Chapter 3 Ballout and Package Information Updated Table 18 Power Management Interface Signals Updated Table 23 Hardware Straps Added Table 30, “Configurable IO (CFIO) Bi-directional Signal Groupings” on page 72 and Table 31, “CFIO DC Characteristics” on page 73 Replaced Figure 19, “SoC Platform Clocking” on page 102 Removed ECC Scrubbing (Sections 12.7.3.1 - 12.7.3.10, Section 12.3.1) Removed SPI DMA (Updated Section 12.3, Removed Sections 12.6.2.1 - 12.6.2.3, Added Register Option Register 1(P_CFG_72) —Offset 72h) Updated Table 49 Added Table 54 Message Types to Section 6.4 Message Bus Space Updated Table 67 Added 12.7.9.2 Miscellaneous Legacy Signal Enables (HLEGACY)—Offset 0Ah Updated Section 13.4.1 DRAM Rank Population (DRP)—Offset 0h Added Table 78 Message Opcode Definition (Section 13.5) Added Section 15.7, “MAC Descriptor Details” Other changes are marked with change bars October 2013 001 Initial Public Release Intel® Quark™ SoC X1000 Datasheet 36 August 2015 Document Number: 329676-005US Introduction—Intel® Quark™ SoC X1000 1.0 Introduction 1.1 About This Manual This document is intended for Original Equipment Manufacturers and BIOS vendors creating products based on the Intel® Quark™ SoC X1000 application processor. Note: Throughout this document, SoC is used as a general term and refers to all Intel® Quark™ SoC X1000 SKUs, unless specifically noted otherwise. This manual assumes a working knowledge of the vocabulary and principles of interfaces and architectures such as PCI Express*, USB, SDIO/MMC, and ACPI. Although some details of these features are described within this manual, refer to the individual industry specifications listed in Table 1 for the complete details. All PCI buses, devices and functions in this manual are abbreviated using the following nomenclature; Bus:Device:Function. This manual abbreviates buses as Bn, devices as Dn and functions as Fn. For example, Device 31 Function 0 is abbreviated as D31:F0, Bus 1 Device 8 Function 0 is abbreviated as B1:D8:F0. Generally, the bus number is not used, and can be considered to be Bus 0. Table 1. Industry Specifications Specification 1.2 Location PCI Express* Base Specification, Revision 2.0 http://www.pcisig.com/specifications PCI Local Bus Specification, Revision 2.3 (PCI) http://www.pcisig.com/specifications PCI Power Management Specification, Revision 1.2 http://www.pcisig.com/specifications Universal Serial Bus Specification (USB), Revision 2.0 http://www.usb.org/developers/docs Advanced Configuration and Power Interface, Version 3.0 (ACPI) http://www.acpi.info/spec.htm Enhanced Host Controller Interface Specification for Universal Serial Bus, Revision 1.0 (EHCI) http://developer.intel.com/technology/usb/ ehcispec.htm IEEE 802.3 Fast Ethernet http://standards.ieee.org/getieee802/ AT Attachment - 6 with Packet Interface (ATA/ATAPI - 6) http://T13.org (T13 1410D) IA-PC HPET (High Precision Event Timers) Specification, Revision 1.0a http://www.intel.com/content/www/us/en/ software-developers/software-developershpet-spec-1-0a.html Component Overview The Intel® Quark™ SoC X1000 processor is the next generation secure, low-power Intel® Architecture (IA) SoC for deeply embedded applications. The SoC integrates the Inte® QuarkTM SoC X1000 Core plus all the required hardware components to run offthe-shelf operating systems and to leverage the vast x86 software ecosystem. August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 37 Intel® Quark™ SoC X1000—Introduction To enable secure applications, the SoC secure SKUs feature an on-die Boot ROM that is used to establish a hardware Root of Trust (RoT). The immutable code located within the Boot ROM is used to initiate an iterative firmware authentication process ensuring only trusted code is executed when taking the platform out of reset. To facilitate low-cost platforms with sensitive Bill of Material (BOM) requirements, all SoC clocks can be generated from a single crystal oscillator while all the required SoC voltage levels can be derived from a single commercial off-the-shelf (COTS) voltage regulator. In addition, the SoC provides an ECC-protected DRAM solution using only standard x8 DDR3 devices. The SoC also features a 512 Kbyte on-die embedded SRAM (eSRAM) that can be configured to overlay regions of DRAM to provide low latency access to critical portions of system memory. For robustness, the contents of this on-die eSRAM are also ECC protected. Figure 1. Block Diagram CPU Core Clock eSRAM Host Bridge JTAG DDR3 Memory Controller AMBA Fabric I/O I/O I/O SPI I/O I/O APIC I/O ROM 8259 I/O HPET 8254 I/O I/O RTC I/O I/O SDIO I/O GPIO UART I/O I/O USB 2.0 I/O PMC 10/100 ETH I/O I/O SPI PCIe* I2C*/GPIO I/O 1.2.1 Legacy Bridge SoC CPU Core Features • 400 MHz maximum operating frequency • Low power options to run at half or at quarter of maximum CPU frequency Intel® Quark™ SoC X1000 Datasheet 38 August 2015 Document Number: 329676-005US Introduction—Intel® Quark™ SoC X1000 • 32-bit address bus, 32-bit data bus • 16 Kbyte shared instruction and data L1 cache. 1.2.2 System Memory Controller Features • Single channel DDR3 memory controller with ECC support • 16-bit data bus • Supports up to two ranks total • Supports DDR3 with 800 MT/s data rates • x8 DRAM device data width • 1 Gbit, 2 Gbit, and 4 Gbit DRAM device densities • Total memory size from 128 Mbyte to 2 Gbyte • Supports different physical mappings of bank addresses to optimize performance • Out-of-order request processing to increase performance • Aggressive power management to reduce power consumption • Proactive page closing policies to close unused pages • Supports soldered down DRAM devices 1.2.3 Embedded SRAM Features • Low Latency 512 Kbyte on-die embedded SRAM • Configurable to either overlay a 512 Kbyte block or overlay individual 4 Kbyte pages of system memory • ECC protected 1.2.4 Power Management Features • Supports ACPI 3.0 specification • Supports C0, C1, and C2 processor power states • Supports S0, S3, and S4/S5 system power states 1.2.5 Security Features • On-die Boot ROM provides Hardware Root of Trust (RoT) for firmware authentication 1.2.6 PCI Express* Features The SoC has two PCI Express* root ports, each supporting the PCI Express Base specification Rev 2.0 at a maximum of 2.5 GT/s data transfer rates. Each root port is configured as a x1 link. • 128 Byte max payload size with the capability of splitting the request at 64 Byte granularity • Software-Initiated Link Power Management (D1, D2, D3Hot, and L1 States) • PME event generation August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 39 Intel® Quark™ SoC X1000—Introduction 1.2.7 Ethernet Features • 10 and 100 Mbps data transfer rates with RMII interface to communicate with an external Fast Ethernet PHY • Full-duplex operation: — IEEE 802.3x flow control support — Optional forwarding of received pause control frames to the user application • Half-duplex operation: — CSMA/CD Protocol support • Flexible address filtering modes: — 64-bit Hash filter for multicast and unicast (DA) addresses — Option to pass all multicast addressed frames — Promiscuous mode to pass all frames without any filtering for network monitoring — Pass all incoming packets (as per filter) with a status report • Programmable frame length to support Standard Ethernet frames with size up to 1522 bytes • Enhanced Receive module for checking IPv4 header checksum and TCP, UDP, or ICMP checksum encapsulated in IPv4 or IPv6 datagrams (Type 2) • Support Ethernet frame time stamping as described in IEEE 1588-2002 and IEEE 1588-2008. The 64-bit timestamps are given in the transmit or receive status of each frame. 1.2.8 USB2 Host Controller Features • 2 host ports that support high-speed (480 Mbps), full-speed (12 Mbps), and lowspeed (1.5 Mbps) operation • EHCI and OHCI host controllers 1.2.9 USB2 Device Controller Features • Single device port that supports high-speed (480 Mbps) and full-speed (12 Mbps) operation 1.2.10 SD/SDIO/eMMC Controller Features • Host Controller provides a single port configurable as an SD, SDIO, or eMMC interface • SD Clock Frequency up to 50 MHz • Supports SD Host Controller Standard Specification 3.0 • Supports SDIO card specification 3.0 • Supports SD Memory Card Specification 3.0 • Supports SD Memory Card Security Specification 1.01 • Supports eMMC Specification 4.41 1.2.11 I2C* Master Controller • Two-wire I2C serial bus interface Intel® Quark™ SoC X1000 Datasheet 40 August 2015 Document Number: 329676-005US Introduction—Intel® Quark™ SoC X1000 • Two I2C speeds supported: Standard (100 Kbit/s) and Fast (400 Kbit/s) data rates • Fully asynchronous I2C clock signal • Master I2C operation 1.2.12 GPIO Features • 16 GPIO pins provided • 6 GPIO pins remain active during S3 and can be used to wake the system from the Suspend state. • Remaining 10 GPIO pins are powered during S0 state only and are not available in S3 1.2.13 SPI Master Controller • Two SPI Master controllers • One Chip Select per master controller • Configurable SCLK frequency from 1 kHz up to 25 MHz 1.2.14 High Speed UART Controller with DMA • Two 16550 compliant UART controllers • Supported Baud rates from 300 to 2764800 • Integrated DMA capability with hardware flow control 1.2.15 Legacy Bridge The Legacy Bridge is a collection of hardware blocks critical to implement an Intel Architecture compatible platform. Some of its key features are: • A 20 MHz Serial Peripheral Interface (SPI) for Flash only - stores boot FW and system configuration data • A Power Management Controller (PMC) that controls many of the power management features present in the SoC • Legacy Bridge Components - Provides hardware blocks required to support legacy PC platform features. The legacy bridge components include the RTC, Interrupt Controllers, Timers and General Purpose I/Os (GPIO). 1.2.16 Package The SoC is packaged in a Flip-Chip Ball Grid Array (FCBGA) package with 393 solder balls with 0.593 mm ball pitch. The package dimensions are 15mm x 15mm. 1.3 Component Identification The Intel® Quark™ SoC X1000 stepping is identified by both: • Processor Family/Model/Stepping returned by the CPUID instruction. This always returns 0x590 for SoC. • Revision ID register of the Host Bridge, located at D0:F0. Reads of the register reflect the stepping. August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 41 Intel® Quark™ SoC X1000—Introduction Table 2. Component Identification Vendor ID1 Device ID2 Revision ID3 Stepping 8086h 0958h 00h A0h Notes: 1. The Vendor ID corresponds to bits 15-0 of the Vendor ID Register located at offset 00-01h in the PCI configuration space of the device. 2. The Device ID corresponds to bits 15-0 of the Device ID Register located at offset 02-03h in the PCI configuration space of the device. 3. The Revision ID corresponds to bits 7-0 of the Revision ID Register located at offset 08h in the PCI configuration space of the device. The SoC incorporates a variety of PCI functions as listed in Table 3. All devices reside on PCI Bus 0 as shown in Figure 2. Intel® Quark™ SoC X1000 Datasheet 42 August 2015 Document Number: 329676-005US Introduction—Intel® Quark™ SoC X1000 Figure 2. Intel® Quark™ SoC X1000 PCI View PCI Space CPU Core Host Bridge D:0,F:0 PCI CAM (I/O) Bus 0 PCI ECAM (Mem) I2C*/GPIO F:2 HSUART0 F:1 EHCI Host F:3 OCHI Host F:4 HSUART1 F:5 IO Fabric D:20 USB Device F:2 RP0 F:1 PMC Legacy Bridge D:31,F:0 SDIO/eMMC F:0 PCIe* D:23 SPI1 F:1 IO Fabric D:21 SPI0 F:0 RP0 F:0 GPIO RTC 8254 8259 HPET IO APIC SPI MAC0 F:6 MAC1 F:7 August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 43 Intel® Quark™ SoC X1000—Introduction Table 3. Intel® Quark™ SoC X1000 Device ID Device Function Description Device ID A0 SRID D0:F0 Host Bridge 0958h 00h D31:F0 Legacy Bridge 095Eh 00h D23:F0 PCIe* Root Port 0 11C3h 00h D23:F1 PCIe* Root Port 1 11C4h 00h D20:F0 SDIO / eMMC Controller 08A7h 10h D20:F1 HS-UART 0 0936h 10h D20:F2 USB 2.0 Device 0939h 10h D20:F3 USB EHCI Host Controller 0939h 10h D20:F4 USB OHCI Host Controller 093Ah 10h D20:F5 HS-UART 1 0936h 10h D20:F6 10/100 Ethernet MAC 0 0937h 10h D20:F7 10/100 Ethernet MAC 1 0937h 10h D21:F0 SPI Controller 0 0935h 10h D21:F1 SPI Controller 1 0935h 10h I C* Controller and GPIO Controller 0934h 10h D21:F2 2 §§ Intel® Quark™ SoC X1000 Datasheet 44 August 2015 Document Number: 329676-005US Physical Interfaces—Intel® Quark™ SoC X1000 2.0 Physical Interfaces Many interfaces contain physical pins. These groups of pins make up the physical interfaces. This chapter summarizes the physical interfaces. November 2014 Document Number: 329676-004US Intel® Quark™ SoC X1000 Datasheet 45 Intel® Quark™ SoC X1000—Physical Interfaces Figure 3. Signals In Default System Pin List DDR3_DQ[15:0] DDR3_DQS[1:0] DDR3_DQSB[1:0] DDR3_DM[1:0] DDR3_MA[15:0] DDR3_BS[2:0] DDR3_RASB DDR3_CASB DDR3_WEB DDR3_CSB[1:0] DDR3_ODT[1:0] DDR3_CKE[1:0] DDR3_CK[1:0] DDR3_CKB[1:0] DDR3_VREF DDR3_ODTPU/DQPU/CMDPU DDR3_IDRAM_PWROK DDR3_ISYSPWRGOOD DDR3_DRAMRSTB MAC[0/1]_TXEN MAC[0/1]_TXDATA[1:0] MAC[0/1]_RXDV MAC[0/1]_RXDATA[1:0] MAC[0/1]_MDC MAC[0/1]_MDIO RMII_REF_CLK PCIE_PETP[1:0] PCIE_PETN[1:0] PCIE_PERP[1:0] PCIE_PERN[1:0] PCIE_REFCLKN PCIE_REFCLKP PCIE_IRCOMP PCIE_RBIAS SD_DATA[7:0] SD_CMD SD_CLK SD_WP SD_CD_B SD_LED SD_PWR USBD_DP USBD_DN USBH[1:0]_DP USBH[1:0]_DN USBH[1:0]_OC_B IUSBCOMP OUSBCOMP USBH[1:0]_PWR_EN CPU Core DDR3 Interface IVCCRTCEXT Legacy Components RTCX1 RTCX2 RTCRST_B THERM_B SMI_B LSPI_SS_B LSPI_SCK Legacy Bridge LSPI_MISO Ethernet RMII Interface LSPI_MOSI RESET_BTN_B PWR_BTN_B WAKE_B GPE_B PCI Express* 2.0 Interface S5_PG Power Management Controller Interface S3_3V3_EN S3_1V5_EN S3_PG S0_3V3_EN S0_1V5_EN S0_1V0_EN S0_1P0_PG SD/MMC Interface S0_PG ODRAM_PWROK OSYSPWRGOOD SIU0_DCD_B SIU0_DSR_B Universal Serial Bus 2.0 Interface SIU0_DTR_B HSUART Interface SIU0_RI_B SIU[0/1]_CTS_B SIU[0/1]_RTS_B SIU[0/1]_RXD SIU[0/1]_TXD FLEX_CLK[2:0] CKSYS25OUT RMII_REF_CLK_OUT REF[0/1]_OUTCLK_P REF[0/1]_OUTCLK_N OSC_COMP XTAL_IN XTAL_OUT Internal Clocking SPI Interface RTC_EXT_CLK_EN PRDY_B PREQ_B TCK TDI TDO TMS TRST_B Intel® Quark™ SoC X1000 Datasheet 46 JTAG Port SPI[0/1]_SS_B SPI[0/1]_SCK SPI[0/1]_MISO SPI[0/1]_MOSI I2C* Interface I2C_CLK I2C_DATA GPIO Interface GPIO_SUS[5:0] GPIO[9:0] November 2014 Document Number: 329676-004US Physical Interfaces—Intel® Quark™ SoC X1000 2.1 Pin States Through Reset This chapter describes the each signal state before, during, and directly after reset. Additionally, some signals have internal pull-up/pull-down termination resistors, and their values are also provided. Table 4. I/O Power Well Definitions Power Type Table 5. Power Well Description CORE Core I/O, and everything else uses the CORE power well. SUS Devices outside of memory that must remain on in the S3 state use the SUS power well. RTC Devices that must be on in the S4/S5 state use the RTC power well. Buffer Type Definitions Buffer Type Buffer Description PCIe* Table 6. PCIe*, differential buffer type SSTL-15 DDR3, 1.5V tolerant SSTL buffer type DDI DDR (TMDS, DP) 1.0V tolerant differential buffer type CMOS[Voltage] CMOS buffer type. [Voltage] can be of the following types: 1.05, 1.5, 1.8, and 3.3. CMOS[Voltage]_OD Open drain CMOS buffer type [Voltage] can be of the following types: 1.05, 1.5, 1.8 and 3.3. Analog Analog pins that do not have specific digital requirements. Often used for circuit calibration or monitoring. Default Buffer State Definitions Buffer State 2.2 Description High-Z The SoC places this output in a high-impedance state. For inputs, external drivers are not expected. Do Not Care The state of the input (driven or tristated) does not affect the SoC. For outputs, it is assumed that the output buffer is in a high-impedance state. VOH The SoC drives this signal high. VOL The SoC drives this signal low. Unknown The SoC drives or expects an indeterminate value. VIH The SoC expects/requires the signal to be driven high. VIL The SoC expects/requires the signal to be driven low. Pull-up This signal is pulled high by a pull-up resistor (internal or external — internal value specified in “Term” column). Pull-down This signal is pulled low by a pull-down resistor (internal or external — internal value specified in “Term” column). Running The clock is toggling, or the signal is transitioning. Off The power plane for this signal is powered down. The SoC does not drive outputs, and inputs should not be driven to the SoC. (VSS on output) System Memory Signals See Section 6.0 for more details of the DDR3 interface signals. Termination not listed. November 2014 Document Number: 329676-004US Intel® Quark™ SoC X1000 Datasheet 47 Intel® Quark™ SoC X1000—Physical Interfaces Table 7. System Memory Signals Default Buffer State Signal Name DDR3_BS[2:0] Dir Term Power Type S4/S5 S3 Reset Enter S0 O - 1.5V SSTL-15 Off High-Z High-Z High-Z DDR3_CASB O - 1.5V SSTL-15 Off High-Z High-Z High-Z DDR3_RASB O - 1.5V SSTL-15 Off High-Z High-Z High-Z DDR3_WEB O - 1.5V SSTL-15 Off High-Z High-Z High-Z DDR3_MA[15:0] I/O - 1.5V SSTL-15 Off High-Z High-Z High-Z DDR3_CK[1:0] I/O - 1.5V SSTL-15 Off High-Z High-Z High-Z DDR3_CKB[1:0] I/O - 1.5V SSTL-15 Off High-Z High-Z High-Z DDR3_CKE[1:0] I/O - 1.5V SSTL-15 Off VOL VOL VOL DDR3_CSB[1:0] I/O - 1.5V SSTL-15 Off High-Z High-Z VOH DDR3_ODT[1:0] I/O - 1.5V SSTL-15 Off High-Z High-Z VOL DDR3_DQ[15:0] I/O - 1.5V SSTL-15 Off High-Z High-Z High-Z DDR3_DM[1:0] I/O - 1.5V SSTL-15 Off High-Z High-Z High-Z DDR3_DQS[1:0] I/O - 1.5V SSTL-15 Off High-Z High-Z High-Z DDR3_DQSB[1:0] I/O - 1.5V SSTL-15 Off High-Z High-Z High-Z DDR3_IDRAM_PWROK I Ext 1.5V CMOS-15 VIL VIH Pull-up VIH DDR3_ISYSPWRGOOD I Ext 1.5V CMOS-15 VIL VIL Pull-up VIH DDR3_DRAMRSTB Off VOH VOL VOL/VOH(S3 Exit) Reference Off Reference Reference Reference Analog Off Analog Analog Analog O - 1.5V CMOS-15 DDR3_VREF I/O - 1.5V DDR3_ODTPU I/O - 1.5V DDR3_DQPU I/O - 1.5V Analog Off Analog Analog Analog DDR3_CMDPU I/O - 1.5V Analog Off Analog Analog Analog 2.3 PCI Express* 2.0 Signals See “PCI Express* 2.0” on page 261 for more details of the interface signals. Table 8. PCI Express* 2.0 Signals Default Buffer State Signal Name Dir Term Power Type S4/S5 S3 Reset PCIE_REFCLKP I - 1.05V PCIe Off Off Running/ Unknown PCIE_REFCLKN I - 1.05V PCIe Off Off Running/ Unknown PCIE_PETP[1:0] O - 1.05V PCIe Off Off PCIE_PETN[1:0] O - 1.05V PCIe Off Off VOL VOL PCIE_PERP[1:0] I - 1.05V PCIe Off Off High-Z High-Z PCIE_PERN[1:0] PCIE_IRCOMP PCIE_RBIAS Intel® Quark™ SoC X1000 Datasheet 48 VOL Enter S0 Running/ Unknown Running/ Unknown VOL I - 1.05V PCIe Off Off High-Z High-Z I/O - 1.5V Analog Off Off Analog Analog I - 1.5V Analog Off Off Analog Analog November 2014 Document Number: 329676-004US Physical Interfaces—Intel® Quark™ SoC X1000 2.4 Ethernet Interface Signals See Chapter 15.0, “10/100 Mbps Ethernet” for more details of the Ethernet interface signals. Table 9. Ethernet Interface Signals Default Buffer State Signal Name Dir Term Power Type S4/S5 S3 Reset Enter S0 RMII_REF_CLK I - 3.3V CMOS3.3 Off Off Running/ Unknown Running MAC0_TXEN O - 3.3V CMOS3.3 Off Off VOL VOL MAC0_TXDATA[1:0] O - 3.3V CMOS3.3 Off Off VOL VOL MAC0_RXDV I 20k(L) 3.3V CMOS3.3 Off Off Pull-down Pull-down MAC0_RXDATA[1:0] I - 3.3V CMOS3.3 Off Off Unknown Unknown MAC0_MDC O Ext 3.3V CMOS3.3 Off Off Pull-up Pull-up MAC0_MDIO I/O Ext 3.3V CMOS3.3_OD Off Off Pull-up Pull-up MAC1_TXEN O - 3.3V CMOS3.3 Off Off VOL VOL MAC1_TXDATA[1:0] O - 3.3V CMOS3.3 Off Off VOL VOL MAC1_RXDV I 20k(L) 3.3V CMOS3.3 Off Off Pull-down Pull-down MAC1_RXDATA[1:0] I - 3.3V CMOS3.3 Off Off Unknown Unknown MAC1_MDC O Ext 3.3V CMOS3.3 Off Off Pull-up Pull-up MAC1_MDIO I/O Ext 3.3V CMOS3.3_OD Off Off Pull-up Pull-up 2.5 USB 2.0 Interface Signals See Chapter 16.0, “USB 2.0” for more details of the USB 2.0 interface signals. Table 10. USB 2.0 Interface Signals (Sheet 1 of 2) Default Buffer State Signal Name Dir Term Power Type S4/S5 S3 Reset Enter S0 USBH0_OC_B I 20k(H) 3.3V CMOS3.3 Off Off Pull-up Pull-up USBH1_OC_B I 20k(H) 3.3V CMOS3.3 Off Off Pull-up Pull-up USBH0_PWR_EN O Ext 3.3V CMOS3.3 Off Off Pull-down Pull-down USBH1_PWR_EN O Ext 3.3V CMOS3.3 Off Off Pull-down Pull-down USBH0_DP I/O - 3.3V USB Off Off High-Z High-Z USBH0_DN I/O - 3.3V USB Off Off High-Z High-Z USBH1_DP I/O - 3.3V USB Off Off High-Z High-Z USBH1_DN I/O - 3.3V USB Off Off High-Z High-Z USBD_DP I/O - 3.3V USB Off Off High-Z High-Z USBD_DN I/O - 3.3V USB Off Off High-Z High-Z I - 1.05V USB Off Off Running/ Unknown Running/ Unknown USB_CLK96P November 2014 Document Number: 329676-004US Intel® Quark™ SoC X1000 Datasheet 49 Intel® Quark™ SoC X1000—Physical Interfaces Table 10. USB 2.0 Interface Signals (Sheet 2 of 2) Default Buffer State Signal Name Dir Term Power Type S4/S5 S3 Reset Enter S0 USB_CLK96N I - 1.05V USB Off Off Running/ Unknown Running/ Unknown OUSBCOMP_P18 O - 1.8V Analog Off Off Analog Analog IUSBCOMP_N18 I - 1.8V Analog Off Off Analog Analog 2.6 Integrated Clock Interface Signals See Chapter 7.0, “Clocking” for more details of the Integrated Clock interface signals. Table 11. Integrated Clock Interface Signals Default Buffer State Signal Name Dir Term Power Type S4/S5 S3 Reset Enter S0 XTAL_IN I - 1.05V Analog Running Running Running Running XTAL_OUT O - 1.05V Analog Running Running Running Running CKSYS25OUT O - 3.3V CMOS3.3 Running Running Running Running REF0_OUTCLK_P O - 1.05V CMOS1.05 VOL VOL VOL Running REF0_OUTCLK_N O - 1.05V CMOS1.05 VOL VOL VOL Running REF1_OUTCLK_P O - 1.05V CMOS1.05 VOL VOL VOL Running REF1_OUTCLK_N O - 1.05V CMOS1.05 VOL VOL VOL Running FLEX0_CLK O - 3.3V CMOS3.3 VOL VOL VOL Running FLEX1_CLK O - 3.3V CMOS3.3 VOL VOL VOL Running FLEX2_CLK O - 3.3V CMOS3.3 VOL VOL VOL Running RMII_REF_CLK_OUT O - 3.3V CMOS3.3 VOL VOL VOL Running OSC_COMP I - 1.5V Analog Analog Analog Analog Analog HPLL_REFCLK_P I - 1.05V CMOS1.05 Off Off Running/ Unknown Running/ Unknown HPLL_REFCLK_N I - 1.05V CMOS1.05 Off Off Running/ Unknown Running/ Unknown PAD_BYPASS_CLK I - 1.05V CMOS1.05 Off Off Running/ Unknown Running/ Unknown 2.7 SDIO/SD/MMC Signals See Chapter 17.0, “SDIO/SD/eMMC” for more details of the interface signals, including different options based on port configuration. Table 12. SD/SDIO/MMC Signals (Sheet 1 of 2) Default Buffer State Signal Name Dir Term Power Type S4/S5 S3 Reset Enter S0 SD_DATA[7:0] I/O 20k(H) 3.3V CMOS3.3 Off Off Pull-up Pull-up SD_CMD I/O 20k(H) 3.3V CMOS3.3 Off Off Pull-up Pull-up SD_CLK O - 3.3V CMOS3.3 Off Off VOL VOL Intel® Quark™ SoC X1000 Datasheet 50 November 2014 Document Number: 329676-004US Physical Interfaces—Intel® Quark™ SoC X1000 Table 12. SD/SDIO/MMC Signals (Sheet 2 of 2) Default Buffer State Signal Name Dir Term Power Type S4/S5 S3 Reset Enter S0 I 20k(L) 3.3V CMOS3.3 Off Off Pull-down Pull-down SD_CD_B I 20k(H) 3.3V CMOS3.3 Off Off Pull-up Pull-up SD_LED O - 3.3V CMOS3.3 Off Off VOL VOL SD_PWR O - 3.3V CMOS3.3 Off Off VOL VOL SD_WP 2.8 High Speed UART Interface Signals The SoC features two separate High Speed UARTs. However, only UART0 provides the Modem Control pins DCD, DSR, DTR and RI. See Chapter 18.0, “High Speed UART” for more details of the HSUART interface signals. Table 13. High Speed UART Signals Default Buffer State Signal Name Dir Term Power Type S4/S5 S3 Reset Enter S0 SIU0_CTS_B I 20k(H) 3.3V CMOS3.3 Off Off Pull-up Pull-up SIU0_DCD_B I 20k(H) 3.3V CMOS3.3 Off Off Pull-up Pull-up SIU0_DSR_B I 20k(H) 3.3V CMOS3.3 Off Off Pull-up Pull-up SIU0_DTR_B O - 3.3V CMOS3.3 Off Off VOH VOH SIU0_RI_B I 20k(H) 3.3V CMOS3.3 Off Off Pull-up Pull-up SIU0_RTS_B O - 3.3V CMOS3.3 Off Off VOH VOH SIU0_RXD I 20k(H) 3.3V CMOS3.3 Off Off Pull-up Pull-up SIU0_TXD O - 3.3V CMOS3.3 Off Off VOH VOH SIU1_CTS_B I 20k(H) 3.3V CMOS3.3 Off Off Pull-up Pull-up SIU1_RTS_B O - 3.3V CMOS3.3 Off Off VOH VOH SIU1_RXD I 20k(H) 3.3V CMOS3.3 Off Off Pull-up Pull-up SIU1_TXD O - 3.3V CMOS3.3 Off Off VOH VOH I2C* Interface Signals 2.9 See Chapter 19.0, “I2C* Controller/GPIO Controller” for more details of the I2C Interface signals. Table 14. I2C* Signals Default Buffer State Signal Name Dir Term Power Type S4/S5 S3 Reset Enter S0 I2C_DATA I/O Ext 3.3V CMOS3.3_OD Off Off Pull-up Pull-up I2C_CLK I/O Ext 3.3V CMOS3.3_OD Off Off Pull-up Pull-up November 2014 Document Number: 329676-004US Intel® Quark™ SoC X1000 Datasheet 51 Intel® Quark™ SoC X1000—Physical Interfaces 2.10 Legacy Serial Peripheral Interface (SPI) Signals See Section 21.7 for more details of the SPI signals. Table 15. Legacy SPI Signals Default Buffer State Signal Name Dir Term Power Type S4/S5 S3 Reset Enter S0 O - 3.3V CMOS3.3 Off Off VOH VOH LSPI_MISO I 20k(H) 3.3V CMOS3.3 Off Off Pull-up Pull-up LSPI_SS_B O - 3.3V CMOS3.3 Off Off VOH VOH LSPI_SCK O - 3.3V CMOS3.3 Off Off VOL VOL LSPI_MOSI 2.11 Serial Peripheral Interface (SPI) See Chapter 20.0, “SPI Interface” for more details of the SPI signals. Table 16. SPI Signals Default Buffer State Signal Name Dir Term Power Type S4/S5 S3 Reset Enter S0 O - 3.3V CMOS3.3 Off Off VOL VOL SPI0_MISO I 20k(H) 3.3V CMOS3.3 Off Off Pull-up Pull-up SPI0_SS_B O - 3.3V CMOS3.3 Off Off VOH VOH SPI0_SCK O - 3.3V CMOS3.3 Off Off VOL VOL SPI1_MOSI O - 3.3V CMOS3.3 Off Off VOL VOL SPI1_MISO I 20k(H) 3.3V CMOS3.3 Off Off Pull-up Pull-up SPI1_SS_B O - 3.3V CMOS3.3 Off Off VOH VOH SPI1_SCK O - 3.3V CMOS3.3 Off Off VOL VOL SPI0_MOSI Intel® Quark™ SoC X1000 Datasheet 52 November 2014 Document Number: 329676-004US Physical Interfaces—Intel® Quark™ SoC X1000 2.12 Real Time Clock (RTC) Interface Signals See Section 21.10 for more details of the RTC interface signals. Table 17. Real Time Clock (RTC) Interface Signals Default Buffer State Signal Name RTCX1 Dir Term Power Type S4/S5 S3 Reset Enter S0 I/O - 2,048 Bytes (RXFIFOSIZE): Reserved. 18 1b RO IP Checksum Offload (Type 2) in Rx (RXTYP2COE): Reserved. 17 1b RO IP Checksum Offload (Type 1) in Rx (RXTYP1COE): Reserved. 16 1b RO Checksum Offload in Tx (TXCOESEL): Reserved. 15 0b RO AV Feature (AVSEL): Reserved. 14 0b RO Energy Efficient Ethernet (EEESEL): Reserved. 13 1b RO IEEE 1588-2008 Advanced Timestamp (TSVER2SEL): Reserved. 12 1b RO Only IEEE 1588-2002 Timestamp (TSVER1SEL): Reserved. 11 1b RO RMON Module (MMCSEL): Reserved. 10 0b RO PMT Magic Packet (MGKSEL): Reserved. 9 0b RO PMT Remote Wakeup (RWKSEL): Reserved. 8 1b RO SMA (MDIO) Interface (SMASEL): Reserved. 7 0b RO L3L4FLTREN: Reserved. 6 0b RO PCS registers (PCSSEL): Reserved. 5 0b RO Multiple MAC Address Registers (ADDMACADRSEL): Reserved. 4 1b RO HASH Filter (HASHSEL): Reserved. 3 0b RO Expanded DA Hash Filter (EXTHASHEN): Reserved. 2 1b RO Half-Duplex support (HDSEL): Reserved. 1 0b RO 1000 Mbps Support (GMIISEL): Reserved. Intel® Quark™ SoC X1000 Datasheet 420 August 2015 Document Number: 329676-005US 10/100 Mbps Ethernet—Intel® Quark™ SoC X1000 Bit Range Default & Access 0 15.7 1b RO Field Name (ID): Description 10 and 100 Mbps Support (MIISEL): Reserved. MAC Descriptor Details This section provides bit-field definitions of the current transmit and receive descriptor registers described in Section 15.6, specifically: • Current Host Transmit Descriptor Register (Register 18) (DMA_REG_18)—Offset 1048h • Current Host Receive Descriptor Register (Register 19) (DMA_REG_19)—Offset 104Chh 15.7.1 Descriptor Overview The descriptor structure has 8 DWORDS (32-bytes). The features of the descriptor structure are: • The descriptor structure is implemented to support buffers of up to 8 KB (useful for Jumbo frames). • There is a re-assignment of control and status bits in TDES0, TDES1, RDES0 (Advanced timestamp or IPC full offload configuration), and RDES1. • The transmit descriptor stores the timestamp in TDES6 and TDES7. • This receive descriptor structure is also used for storing the extended status (RDES4) and timestamp (RDES6 and RDES7). • You can select one of the following options for descriptor structure: — If timestamping is enabled in Register 448 (Timestamp Control Register) or Checksum Offload is enabled in Register 0 (MAC Configuration Register), the software needs to allocate 32-bytes (8 DWORDS) of memory for every descriptor. For this, the software should set Bit 7 (Alternate Descriptor Size) of Register 0 (Bus Mode Register). — If timestamping or Checksum Offload is not enabled, the extended descriptors (DES4 to DES7) are not required. Therefore, the software can use alternate descriptors with the default size of 16 bytes. 15.7.2 Descriptor Endianness The descriptor addresses must be aligned to the bus width (Word, DWord, or LWord for 32-bit bus). The data bus is configured for little-endian format. The structure of the descriptor with respect to the data bus endianness is as follows: • Data Bus Endianness: Little-endian • Descriptor Endianness: Same-endian • Data Bus: 32-bit data bus 15.7.3 Transmit Descriptor The transmit descriptor structure is shown in Figure 29. The application software must program the control bits TDES0[31:18] during descriptor initialization. When the DMA updates the descriptor, it writes back all the control bits except the OWN bit (which it August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 421 Intel® Quark™ SoC X1000—10/100 Mbps Ethernet clears) and updates the status bits[7:0]. The contents of the transmitter descriptor word 0 (TDES0) through word 3 (TDES3) are given in Table 89 through Table 91, respectively. The snapshot of the timestamp to be taken can be enabled for a given frame by setting Bit 25 (TTSE) of TDES0. When the descriptor is closed (that is, when the OWN bit is cleared), the timestamp is written into TDES6 and TDES7. This is indicated by the status Bit 17 (TTSS) of TDES0 shown in Figure 29. The contents of TDES6 and TDES7 are mentioned in Table 93 and Table 94. Figure 29. Transmit Descriptor Fields The DMA always reads or fetches four DWORDS of the descriptor from system memory to obtain the buffer and control information as shown in Figure 30. When the AV feature is enabled, TDES0 has additional control bits[6:3] for Channel 1 and Channel 2. For Channel 0, Bits [6:3] are ignored. Bits [6:3] are described in Table 89. Intel® Quark™ SoC X1000 Datasheet 422 August 2015 Document Number: 329676-005US 10/100 Mbps Ethernet—Intel® Quark™ SoC X1000 Figure 30. Transmit Descriptor Fetch (Read) Table 89. Transmit Descriptor Word 0 (TDES0) (Sheet 1 of 3) Bit Description 31 OWN: Own Bit When set, this bit indicates that the descriptor is owned by the DMA. When this bit is reset, it indicates that the descriptor is owned by the Host. The DMA clears this bit either when it completes the frame transmission or when the buffers allocated in the descriptor are read completely. The ownership bit of the frame’s first descriptor must be set after all subsequent descriptors belonging to the same frame have been set. This avoids a possible race condition between fetching a descriptor and the driver setting an ownership bit. 30 IC: Interrupt on Completion When set, this bit sets the Transmit Interrupt (Register 5[0]) after the present frame has been transmitted. 29 LS: Last Segment When set, this bit indicates that the buffer contains the last segment of the frame. When this bit is set, the TBS1 or TBS2 field in TDES1 should have a non-zero value. 28 FS: First Segment When set, this bit indicates that the buffer contains the first segment of a frame. 27 DC: Disable CRC When this bit is set, the MAC does not append a cyclic redundancy check (CRC) to the end of the transmitted frame. This is valid only when the first segment (TDES0[28]) is set. 26 DP: Disable Pad When set, the MAC does not automatically add padding to a frame shorter than 64 bytes. When this bit is reset, the DMA automatically adds padding and CRC to a frame shorter than 64 bytes, and the CRC field is added despite the state of the DC (TDES0[27]) bit. This is valid only when the first segment (TDES0[28]) is set. 25 TTSE: Transmit Timestamp Enable When set, this bit enables IEEE1588 hardware timestamping for the transmit frame referenced by the descriptor. This field is valid only when the Enable IEEE1588 Timestamping option is selected during core configuration and the First Segment control bit (TDES0[28]) is set. 24 CRCR: CRC Replacement Control When set, the MAC replaces the last four bytes of the transmitted packet with recalculated CRC bytes. The host should ensure that the CRC bytes are present in the frame being transferred from the Transmit Buffer. This bit is valid when the Enable SA, VLAN, and CRC Insertion on TX option is selected during core configuration and the First Segment control bit (TDES0[28]) is set. August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 423 Intel® Quark™ SoC X1000—10/100 Mbps Ethernet Table 89. Transmit Descriptor Word 0 (TDES0) (Sheet 2 of 3) Bit Description 23:22 CIC: Checksum Insertion Control These bits control the checksum calculation and insertion. The following list describes the bit encoding: • 2’b00: Checksum Insertion Disabled. • 2’b01: Only IP header checksum calculation and insertion are enabled. • 2’b10: IP header checksum and payload checksum calculation and insertion are enabled, but pseudo-header checksum is not calculated in hardware. • 2’b11: IP Header checksum and payload checksum calculation and insertion are enabled, and pseudo-header checksum is calculated in hardware. This field is valid when the Enable Transmit Full TCP/IP Checksum (Type 2) option is selected during core configuration and the First Segment control bit (TDES0[28]) is set. 21 TER: Transmit End of Ring When set, this bit indicates that the descriptor list reached its final descriptor. The DMA returns to the base address of the list, creating a descriptor ring. 20 TCH: Second Address Chained When set, this bit indicates that the second address in the descriptor is the Next Descriptor address rather than the second buffer address. When TDES0[20] is set, TBS2 (TDES1[28:16]) is a “don’t care” value. TDES0[21] takes precedence over TDES0[20]. 19:18 VLIC: VLAN Insertion Control When set, these bits request the MAC to perform VLAN tagging or untagging before transmitting the frames. If the frame is modified for VLAN tags, the MAC automatically recalculates and replaces the CRC bytes. The following list describes the values of these bits: • 2'b00: Do not add a VLAN tag. • 2'b01: Remove the VLAN tag from the frames before transmission. This option should be used only with the VLAN frames. • 2'b10: Insert a VLAN tag with the tag value programmed in Register 353 (VLAN Tag Inclusion or Replacement Register). • 2'b11: Replace the VLAN tag in frames with the Tag value programmed in Register 353 (VLAN Tag Inclusion or Replacement Register). This option should be used only with the VLAN frames. These bits are valid when the Enable SA, VLAN, and CRC Insertion on TX option is selected during core configuration and the First Segment control bit (TDES0[28]) is set. 17 TTSS: Transmit Timestamp Status This field is used as a status bit to indicate that a timestamp was captured for the described transmit frame. When this bit is set, TDES2 and TDES3 have a timestamp value captured for the transmit frame. This field is only valid when the descriptor’s Last Segment control bit (TDES0[29]) is set. 16 IHE: IP Header Error When set, this bit indicates that the MAC transmitter detected an error in the IP datagram header. The transmitter checks the header length in the IPv4 packet against the number of header bytes received from the application and indicates an error status if there is a mismatch. For IPv6 frames, a header error is reported if the main header length is not 40 bytes. Furthermore, the Ethernet Length/Type field value for an IPv4 or IPv6 frame must match the IP header version received with the packet. For IPv4 frames, an error status is also indicated if the Header Length field has a value less than 0x5. 15 ES: Error Summary Indicates the logical OR of the following bits: • TDES0[14]: Jabber Timeout • TDES0[13]: Frame Flush • TDES0[11]: Loss of Carrier • TDES0[10]: No Carrier • TDES0[9]: Late Collision • TDES0[8]: Excessive Collision • TDES0[2]: Excessive Deferral • TDES0[1]: Underflow Error • TDES0[16]: IP Header Error • TDES0[12]: IP Payload Error 14 JT: Jabber Timeout When set, this bit indicates the MAC transmitter has experienced a jabber time-out. This bit is only set when Bit 22 (Jabber Disable) of Register 0 (MAC Configuration Register) is not set. Intel® Quark™ SoC X1000 Datasheet 424 August 2015 Document Number: 329676-005US 10/100 Mbps Ethernet—Intel® Quark™ SoC X1000 Table 89. Transmit Descriptor Word 0 (TDES0) (Sheet 3 of 3) Bit Description 13 FF: Frame Flushed When set, this bit indicates that the DMA or MTL flushed the frame because of a software Flush command given by the CPU. 12 IPE: IP Payload Error When set, this bit indicates that MAC transmitter detected an error in the TCP, UDP, or ICMP IP datagram payload. The transmitter checks the payload length received in the IPv4 or IPv6 header against the actual number of TCP, UDP, or ICMP packet bytes received from the application and issues an error status in case of a mismatch. 11 LC: Loss of Carrier When set, this bit indicates that a loss of carrier occurred during frame transmission (that is, the gmii_crs_i signal was inactive for one or more transmit clock periods during frame transmission). This is valid only for the frames transmitted without collision when the MAC operates in the halfduplex mode. 10 NC: No Carrier When set, this bit indicates that the Carrier Sense signal form the PHY was not asserted during transmission. 9 LC: Late Collision When set, this bit indicates that frame transmission is aborted because of a collision occurring after the collision window (64 byte-times, including preamble, in MII mode and 512 byte-times, including preamble and carrier extension, in GMII mode). This bit is not valid if the Underflow Error bit is set. 8 EC: Excessive Collision When set, this bit indicates that the transmission was aborted after 16 successive collisions while attempting to transmit the current frame. If Bit 9 (Disable Retry) bit in the Register 0 (MAC Configuration Register) is set, this bit is set after the first collision, and the transmission of the frame is aborted. 7 VF: VLAN Frame When set, this bit indicates that the transmitted frame is a VLAN-type frame. 6:3 CC: Collision Count (Status field) These status bits indicate the number of collisions that occurred before the frame was transmitted. This count is not valid when the Excessive Collisions bit (TDES0[8]) is set. The core updates this status field only in the half-duplex mode. -orSLOTNUM: Slot Number Control Bits in AV Mode These bits indicate the slot interval in which the data should be fetched from the corresponding buffers addressed by TDES2 or TDES3. When the transmit descriptor is fetched, the DMA compares the slot number value in this field with the slot interval maintained in the core (Register 11xx). It fetches the data from the buffers only if there is a match in values. These bits are valid only for AV channels (not Channel 0). 2 ED: Excessive Deferral When set, this bit indicates that the transmission has ended because of excessive deferral of over 24,288 bit times (155,680 bits times in 1,000-Mbps mode or if Jumbo Frame is enabled) if Bit 4 (Deferral Check) bit in Register 0 (MAC Configuration Register) is set high. 1 UF: Underflow Error When set, this bit indicates that the MAC aborted the frame because the data arrived late from the Host memory. Underflow Error indicates that the DMA encountered an empty transmit buffer while transmitting the frame. The transmission process enters the Suspended state and sets both Transmit Underflow (Register 5[5]) and Transmit Interrupt (Register 5[0]). 0 DB: Deferred Bit When set, this bit indicates that the MAC defers before transmission because of the presence of carrier. This bit is valid only in the half-duplex mode. August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 425 Intel® Quark™ SoC X1000—10/100 Mbps Ethernet Table 90. Transmit Descriptor Word 1 (TDES1) Bit Description 31:29 SAIC: SA Insertion Control These bits request the MAC to add or replace the Source Address field in the Ethernet frame with the value given in the MAC Address 0 register. If the Source Address field is modified in a frame, the MAC automatically recalculates and replaces the CRC bytes. The Bit 31 specifies the MAC Address Register (1 or 0) value that is used for Source Address insertion or replacement. The following list describes the values of Bits[30:29]: • 2'b00: Do not include the source address. • 2'b01: Include or insert the source address. For reliable transmission, the application must provide frames without source addresses. • 2'b10: Replace the source address. For reliable transmission, the application must provide frames with source addresses. • 2'b11: Reserved These bits are valid in the GMAC-DMA, GMAC-AXI, and GMAC-AHB configurations when the Enable SA, VLAN, and CRC Insertion on TX is selected during core configuration and when the First Segment control bit (TDES0[28]) is set. 28:16 TBS2: Transmit Buffer 2 Size This field indicates the second data buffer size in bytes. This field is not valid if TDES0[20] is set. 15:13 12:0 Table 91. Reserved TBS1: Transmit Buffer 1 Size These bits indicate the first data buffer byte size, in bytes. If this field is 0, the DMA ignores this buffer and uses Buffer 2 or the next descriptor, depending on the value of TCH (TDES0[20]). Transmit Descriptor 2 (TDES2) Bit 31:0 Table 92. Description Buffer 1 Address Pointer These bits indicate the physical address of Buffer 1. There is no limitation on the buffer address alignment. Transmit Descriptor 3 (TDES3) Bit 31:0 Table 93. Description Buffer 2 Address Pointer (Next Descriptor Address) Indicates the physical address of Buffer 2 when a descriptor ring structure is used. If the Second Address Chained (TDES1[24]) bit is set, this address contains the pointer to the physical memory where the Next Descriptor is present. The buffer address pointer must be aligned to the bus width only when TDES1[24] is set. (LSBs are ignored internally.) Transmit Descriptor 6 (TDES6) Bit Description 31:0 TTSL: Transmit Frame Timestamp Low This field is updated by DMA with the least significant 32 bits of the timestamp captured for the corresponding transmit frame. This field has the timestamp only if the Last Segment bit (LS) in the descriptor is set and Timestamp status (TTSS) bit is set. Intel® Quark™ SoC X1000 Datasheet 426 August 2015 Document Number: 329676-005US 10/100 Mbps Ethernet—Intel® Quark™ SoC X1000 Table 94. Transmit Descriptor 7 (TDES7) Bit 31:0 15.7.4 Description TTSH: Transmit Frame Timestamp High This field is updated by DMA with the most significant 32 bits of the timestamp captured for the corresponding receive frame. This field has the timestamp only if the Last Segment bit (LS) in the descriptor is set and Timestamp status (TTSS) bit is set. Receive Descriptor The structure of the received descriptor is shown in Figure 31. It has 32 bytes of descriptor data (8 DWORDs). Figure 31. Receive Descriptor Fields The contents of RDES0 are identified in Table 95. The contents of RDES1 through RDES3 are identified in Table 96 through Table 98, respectively. Note: Some of the bit functions of RDES0 are not backward compatible to Release 3.41a and previous versions. These bits are Bit 7, Bit 0, and Bit 5. The function of Bit 5 is backward compatible to Release 3.30a and previous versions. August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 427 Intel® Quark™ SoC X1000—10/100 Mbps Ethernet Table 95. Receive Descriptor Fields (RDES0) (Sheet 1 of 2) Bit Description 31 OWN: Own Bit When set, this bit indicates that the descriptor is owned by the DMA of the DWC_gmac. When this bit is reset, this bit indicates that the descriptor is owned by the Host. The DMA clears this bit either when it completes the frame reception or when the buffers that are associated with this descriptor are full. 30 AFM: Destination Address Filter Fail When set, this bit indicates a frame that failed in the DA Filter in the MAC. 29:16 FL: Frame Length These bits indicate the byte length of the received frame that was transferred to host memory (including CRC). This field is valid when Last Descriptor (RDES0[8]) is set and either the Descriptor Error (RDES0[14]) or Overflow Error bits are reset. The frame length also includes the two bytes appended to the Ethernet frame when IP checksum calculation (Type 1) is enabled and the received frame is not a MAC control frame. This field is valid when Last Descriptor (RDES0[8]) is set. When the Last Descriptor and Error Summary bits are not set, this field indicates the accumulated number of bytes that have been transferred for the current frame. 15 ES: Error Summary Indicates the logical OR of the following bits: • RDES0[1]: CRC Error • RDES0[3]: Receive Error • RDES0[4]: Watchdog Timeout • RDES0[6]: Late Collision • RDES0[7]: Giant Frame • RDES4[4:3]: IP Header or Payload Error • RDES0[11]: Overflow Error • RDES0[14]: Descriptor Error This field is valid only when the Last Descriptor (RDES0[8]) is set. 14 DE: Descriptor Error When set, this bit indicates a frame truncation caused by a frame that does not fit within the current descriptor buffers, and that the DMA does not own the Next Descriptor. The frame is truncated. This field is valid only when the Last Descriptor (RDES0[8]) is set. 13 SAF: Source Address Filter Fail When set, this bit indicates that the SA field of frame failed the SA Filter in the MAC. 12 LE: Length Error When set, this bit indicates that the actual length of the frame received and that the Length/ Type field does not match. This bit is valid only when the Frame Type (RDES0[5]) bit is reset. 11 OE: Overflow Error When set, this bit indicates that the received frame was damaged because of buffer overflow in MTL. Note: This bit is set only when the DMA transfers a partial frame to the application. This happens only when the Rx FIFO is operating in the threshold mode. In the store-and-forward mode, all partial frames are dropped completely in Rx FIFO. 10 VLAN: VLAN Tag When set, this bit indicates that the frame to which this descriptor is pointing is a VLAN frame tagged by the MAC. The VLAN tagging depends on checking the VLAN fields of received frame based on the VLAN Tag Register (Register 7) (GMAC_REG_7)—Offset 1Ch setting. 9 FS: First Descriptor When set, this bit indicates that this descriptor contains the first buffer of the frame. If the size of the first buffer is 0, the second buffer contains the beginning of the frame. If the size of the second buffer is also 0, the next Descriptor contains the beginning of the frame. 8 LS: Last Descriptor When set, this bit indicates that the buffers pointed to by this descriptor are the last buffers of the frame. Intel® Quark™ SoC X1000 Datasheet 428 August 2015 Document Number: 329676-005US 10/100 Mbps Ethernet—Intel® Quark™ SoC X1000 Table 95. Table 96. Receive Descriptor Fields (RDES0) (Sheet 2 of 2) Bit Description 7 Timestamp Available, IP Checksum Error (Type1), or Giant Frame When Advanced Timestamp feature is present, when set, this bit indicates that a snapshot of the Timestamp is written in descriptor words 6 (RDES6) and 7 (RDES7). This is valid only when the Last Descriptor bit (RDES0[8]) is set. When IP Checksum Engine (Type 1) is selected, this bit, when set, indicates that the 16-bit IPv4 Header checksum calculated by the core did not match the received checksum bytes. Otherwise, this bit, when set, indicates the Giant Frame Status. Giant frames are larger than 1,518byte (or 1,522-byte for VLAN or 2,000-byte when Bit 27 (2KPE) of MAC Configuration register is set) normal frames and larger than 9,018-byte (9,022-byte for VLAN) frame when Jumbo Frame processing is enabled. 6 LC: Late Collision When set, this bit indicates that a late collision has occurred while receiving the frame in the halfduplex mode. 5 FT: Frame Type When set, this bit indicates that the Receive Frame is an Ethernet-type frame (the LT field is greater than or equal to 16’h0600). When this bit is reset, it indicates that the received frame is an IEEE802.3 frame. This bit is not valid for Runt frames less than 14 bytes. 4 RWT: Receive Watchdog Timeout When set, this bit indicates that the Receive Watchdog Timer has expired while receiving the current frame and the current frame is truncated after the Watchdog Timeout. 3 RE: Receive Error When set, this bit indicates that the gmii_rxer_i signal is asserted while gmii_rxdv_i is asserted during frame reception. This error also includes carrier extension error in the GMII and half-duplex mode. Error can be of less or no extension, or error (rxd ≠ 0f) during extension. 2 DE: Dribble Bit Error When set, this bit indicates that the received frame has a non-integer multiple of bytes (odd nibbles). This bit is valid only in the MII Mode. 1 CE: CRC Error When set, this bit indicates that a Cyclic Redundancy Check (CRC) Error occurred on the received frame. This field is valid only when the Last Descriptor (RDES0[8]) is set. 0 Extended Status Available/Rx MAC Address When either Advanced Timestamp or IP Checksum Offload (Type 2) is present, this bit, when set, indicates that the extended status is available in descriptor word 4 (RDES4). This is valid only when the Last Descriptor bit (RDES0[8]) is set. When Advance Timestamp Feature or IPC Full Offload is not selected, this bit indicates Rx MAC Address status. When set, this bit indicates that the Rx MAC Address registers value (1 to 15) matched the frame’s DA field. When reset, this bit indicates that the Rx MAC Address Register 0 value matched the DA field. Receive Descriptor Fields 1 (RDES1) (Sheet 1 of 2) Bit Description 31 DIC: Disable Interrupt on Completion When set, this bit prevents setting the Status Register’s RI bit (CSR5[6]) for the received frame ending in the buffer indicated by this descriptor. This, in turn, disables the assertion of the interrupt to Host because of RI for that frame. 30:29 Reserved 28:16 RBS2: Receive Buffer 2 Size These bits indicate the second data buffer size, in bytes. The buffer size must be a multiple of 4, 8, or 16, depending on the bus widths (32, 64, or 128, respectively), even if the value of RDES3 (buffer2 address pointer) is not aligned to bus width. If the buffer size is not an appropriate multiple of 4, 8, or 16, the resulting behavior is undefined. This field is not valid if RDES1[14] is set. 15 RER: Receive End of Ring When set, this bit indicates that the descriptor list reached its final descriptor. The DMA returns to the base address of the list, creating a descriptor ring. August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 429 Intel® Quark™ SoC X1000—10/100 Mbps Ethernet Table 96. Receive Descriptor Fields 1 (RDES1) (Sheet 2 of 2) Bit Description 14 RCH: Second Address Chained When set, this bit indicates that the second address in the descriptor is the Next Descriptor address rather than the second buffer address. When this bit is set, RBS2 (RDES1[28:16]) is a “don’t care” value. RDES1[15] takes precedence over RDES1[14]. 13 12:0 Table 97. Table 98. Reserved RBS1: Receive Buffer 1 Size Indicates the first data buffer size in bytes. The buffer size must be a multiple of 4, 8, or 16, depending upon the bus widths (32, 64, or 128), even if the value of RDES2 (buffer1 address pointer) is not aligned. When the buffer size is not a multiple of 4, 8, or 16, the resulting behavior is undefined. If this field is 0, the DMA ignores this buffer and uses Buffer 2 or next descriptor depending on the value of RCH (Bit 14). Receive Descriptor Fields 2 (RDES2) Bit Description 31:0 Buffer 1 Address Pointer These bits indicate the physical address of Buffer 1. There are no limitations on the buffer address alignment except for the following condition: The DMA uses the configured value for its address generation when the RDES2 value is used to store the start of frame. The DMA performs a write operation with the RDES2[3:0, 2:0, or 1:0] bits as 0 during the transfer of the start of frame but the frame data is shifted as per the actual Buffer address pointer. The DMA ignores RDES2[3:0, 2:0, or 1:0] (corresponding to bus width of 128, 64, or 32) if the address pointer is to a buffer where the middle or last part of the frame is stored. Receive Descriptor Fields 3 (RDES3) Bit Description 31:0 Buffer 2 Address Pointer (Next Descriptor Address) These bits indicate the physical address of Buffer 2 when a descriptor ring structure is used. If the Second Address Chained (RDES1[24]) bit is set, this address contains the pointer to the physical memory where the Next Descriptor is present. If RDES1[24] is set, the buffer (Next Descriptor) address pointer must be bus width-aligned (RDES3[3, 2, or 1:0] = 0, corresponding to a bus width of 128, 64, or 32. LSBs are ignored internally.) However, when RDES1[24] is reset, there are no limitations on the RDES3 value, except for the following condition: The DMA uses the configured value for its buffer address generation when the RDES3 value is used to store the start of frame. The DMA ignores RDES3 [3, 2, or 1:0] (corresponding to a bus width of 128, 64, or 32) if the address pointer is to a buffer where the middle or last part of the frame is stored. The status written is as shown in Table 99. The status is written only when there is status related to IPC or timestamp available. The availability of extended status is indicated by Bit 0 of RDES0. This status is available only when the Advance Timestamp or IPC Full Offload feature is selected. Intel® Quark™ SoC X1000 Datasheet 430 August 2015 Document Number: 329676-005US 10/100 Mbps Ethernet—Intel® Quark™ SoC X1000 Table 99. Receive Descriptor Fields 4 (RDES4) (Sheet 1 of 2) Bit Description 31:28 Reserved 27:26 Layer 3 and Layer 4 Filter Number Matched These bits indicate the number of the Layer 3 and Layer 4 Filter that matched the received frame. • 00: Filter 0 • 01: Filter 1 • 10: Filter 2 • 11: Filter 3 This field is valid only when Bit 24 or Bit 25 is set high. When more than one filter matches, these bits give only the lowest filter number. 25 Layer 4 Filter Match When set, this bit indicates that the received frame matches one of the enabled Layer 4 Port Number fields. This status is given only when one of the following conditions is true: • Layer 3 fields are not enabled and all enabled Layer 4 fields match. • All enabled Layer 3 and Layer 4 filter fields match. When more than one filter matches, this bit gives the layer 4 filter status of filter indicated by Bits [27:26]. 24 Layer 3 Filter Match When set, this bit indicates that the received frame matches one of the enabled Layer 3 IP Address fields. This status is given only when one of the following conditions is true: • All enabled Layer 3 fields match and all enabled Layer 4 fields are bypassed. • All enabled filter fields match. When more than one filter matches, this bit gives the layer 3 filter status of filter indicated by Bits [27:26]. 23:21 Reserved 20:18 VLAN Tag Priority Value These bits give the VLAN tag’s user value in the received packet. These bits are valid only when the RDES4 Bits 16 and 17 are set. These bits are available only when you select the AV feature. 17 AV Tagged Packet Received When set, this bit indicates that an AV tagged packet is received. Otherwise, this bit indicates that an untagged AV packet is received. This bit is valid when Bit 16 is set. This bit is available only when you select the AV feature. 16 AV Packet Received When set, this bit indicates that an AV packet is received. This bit is available only when you select the AV feature. 15 Reserved 14 Timestamp Dropped When set, this bit indicates that the timestamp was captured for this frame but got dropped in the MTL Rx FIFO because of overflow. This bit is available only when you select the Advanced Timestamp feature. Otherwise, this bit is reserved. 13 PTP Version When set, this bit indicates that the received PTP message is having the IEEE 1588 version 2 format. When reset, it has the version 1 format. This bit is available only when you select the Advanced Timestamp feature. Otherwise, this bit is reserved. 12 PTP Frame Type When set, this bit indicates that the PTP message is sent directly over Ethernet. When this bit is not set and the message type is non-zero, it indicates that the PTP message is sent over UDP-IPv4 or UDP-IPv6. The information about IPv4 or IPv6 can be obtained from Bits 6 and 7. This bit is available only when you select the Advanced Timestamp feature. August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 431 Intel® Quark™ SoC X1000—10/100 Mbps Ethernet Table 99. Receive Descriptor Fields 4 (RDES4) (Sheet 2 of 2) Bit 11:8 Description Message Type These bits are encoded to give the type of the message received. • 0000: No PTP message received • 0001: SYNC (all clock types) • 0010: Follow_Up (all clock types) • 0011: Delay_Req (all clock types) • 0100: Delay_Resp (all clock types) • 0101: Pdelay_Req (in peer-to-peer transparent clock) • 0110: Pdelay_Resp (in peer-to-peer transparent clock) • 0111: Pdelay_Resp_Follow_Up (in peer-to-peer transparent clock) • 1000: Announce • 1001: Management • 1010: Signaling • 1011-1110: Reserved • 1111: PTP packet with Reserved message type These bits are available only when you select the Advance Timestamp feature. Note: Values 1000, 1001, and 1010 are not backward compatible with release 3.50a. 7 IPv6 Packet Received When set, this bit indicates that the received packet is an IPv6 packet. This bit is updated only when Bit 10 (IPC) of MAC Configuration Register (Register 0) (GMAC_REG_0)—Offset 0h) is set. This bit is available when you select the Enable Receive Full TCP/IP Checksum (Type 2) feature. 6 IPv4 Packet Received When set, this bit indicates that the received packet is an IPv4 packet. This bit is updated only when Bit 10 (IPC) of MAC Configuration Register (Register 0) (GMAC_REG_0)—Offset 0h) is set. This bit is available when you select the Enable Receive Full TCP/IP Checksum (Type 2) feature. 5 IP Checksum Bypassed When set, this bit indicates that the checksum offload engine is bypassed. This bit is available when you select the Enable Receive Full TCP/IP Checksum (Type 2) feature. 4 IP Payload Error When set, this bit indicates that the 16-bit IP payload checksum (that is, the TCP, UDP, or ICMP checksum) that the core calculated does not match the corresponding checksum field in the received segment. It is also set when the TCP, UDP, or ICMP segment length does not match the payload length value in the IP Header field. This bit is valid when either Bit 7 or Bit 6 is set. This bit is available when you select the Enable Receive Full TCP/IP Checksum (Type 2) feature. 3 IP Header Error When set, this bit indicates that either the 16-bit IPv4 header checksum calculated by the core does not match the received checksum bytes, or the IP datagram version is not consistent with the Ethernet Type value. This bit is valid when either Bit 7 or Bit 6 is set. This bit is available when you select the Enable Receive Full TCP/IP Checksum (Type 2) feature. 2:0 IP Payload Type These bits indicate the type of payload encapsulated in the IP datagram processed by the Receive Checksum Offload Engine (COE). The COE also sets these bits to 2'b00 if it does not process the IP datagram’s payload due to an IP header error or fragmented IP. • 3'b000: Unknown or did not process IP payload • 3'b001: UDP • 3'b010: TCP • 3'b011: ICMP • 3’b1xx: Reserved This bit is valid when either Bit 7 or Bit 6 is set. This bit is available when you select the Enable Receive Full TCP/IP Checksum (Type 2) feature. RDES6 and RDES7 contain the snapshot of the timestamp. The availability of the snapshot of the timestamp in RDES6 and RDES7 is indicated by Bit 7 in the RDES0 descriptor. The contents of RDES6 and RDES7 are identified in Table 100 and Table 101, respectively. Intel® Quark™ SoC X1000 Datasheet 432 August 2015 Document Number: 329676-005US 10/100 Mbps Ethernet—Intel® Quark™ SoC X1000 Table 100. Table 101. Receive Descriptor Fields 6 (RDES6) Bit Description 31:0 RTSL: Receive Frame Timestamp Low This field is updated by DMA with the least significant 32 bits of the timestamp captured for the corresponding receive frame. This field is updated by DMA only for the last descriptor of the receive frame which is indicated by Last Descriptor status bit (RDES0[8]). Receive Descriptor Fields 7 (RDES7) Bit Description 31:0 RTSH: Receive Frame Timestamp High This field is updated by DMA with the most significant 32 bits of the timestamp captured for the corresponding receive frame. This field is updated by DMA only for the last descriptor of the receive frame which is indicated by Last Descriptor status bit (RDES0[8]). §§ August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 433 Intel® Quark™ SoC X1000—10/100 Mbps Ethernet Intel® Quark™ SoC X1000 Datasheet 434 August 2015 Document Number: 329676-005US USB 2.0—Intel® Quark™ SoC X1000 16.0 USB 2.0 The Intel® Quark™ SoC X1000 USB subsystem provides a two-port USB 2.0 Host Controller and one USB 2.0 Device port. 16.1 Signal Descriptions See Chapter 2.0, “Physical Interfaces” for additional details. The signal description table has the following headings: • Signal Name: The name of the signal/pin • Direction: The buffer direction can be either input, output, or I/O (bidirectional) • Type: The buffer type found in Chapter 4.0, “Electrical Characteristics” • Description: A brief explanation of the signal’s function Table 102. Signals Signal Name USBH[0/1]_DP USBH[0/1]_DN Direction/ Type I/O Description Universal Serial Bus Host Port 0 and Port 1. Differentials: Bus Data/ Address/Command Bus USBH0_OC_B USBH1_OC_B I Over current Indicators: These signals set corresponding bits in the USB controller to indicate that an over current condition has occurred. Overcurrent indicators are provided for both Host ports. USBH0_PWR_EN USBH1_PWR_EN O Power Enable signal to the USB host port USBD_DP USBD_DN I/O Universal Serial Bus Device Port. Differentials: Bus Data/ Address/ Command Bus OUSBCOMP O RCOMP OUT. Note: Please check the Platform Design Guide for connection details for this COMP pin. IUSBCOMP I RCOMP IN. Note: Please check the Platform Design Guide for connection details for this COMP pin. 16.2 Features 16.2.1 USB2.0 Host Controller Features • 2-Port USB 2.0 Host Controller compatible with the following standards: — Universal Serial Bus Specification (Revision 2.0, April 27, 2000) — Enhanced Host Controller Interface Specification for Universal Serial Bus (Revision1.0, March 12, 2002) — EHCI 1.1 Addendum (Revision v0.6, October 2007) — OpenHCI: Open Host Controller Interface Specification for USB (Release 1.0a, September 14, 1999) August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 435 Intel® Quark™ SoC X1000—USB 2.0 • EHCI features Supported: — 512-byte Packet Buffer depth for in/out data buffering — Programmable Packet Buffer depth — Extended capability pointer (EECP = 8’hC0) — Programmable frame list flag — 32-bit only addressing capability — Per port power control — PCI Power Management Not supported: — Descriptor/data prefetching — Asynchronous schedule park capability — HSIC functionality — Link Power Management (LPM) ECN • OHCI features Supported: — One OHCI companion controller — Per port power control Not supported: — Keyboard/Mouse legacy interface 16.2.2 USB2.0 Device Features • High-speed (480 Mbps) and full-speed (12 Mbps) operation • 3 logical endpoints in addition to logical endpoint 0 • 1 configuration in addition to configuration 0 • Enables user-configurable endpoint information • Multiple data packets for each OUT endpoint (Multiple Receive FIFO). • Both DMA option and Slave-Only modes • True scatter-gather DMA implementation • Descriptor-based memory structures in application memory when in DMA mode 16.3 References • USB 2.0 specification at http://www.usb.org/developers/docs Intel® Quark™ SoC X1000 Datasheet 436 August 2015 Document Number: 329676-005US USB 2.0—Intel® Quark™ SoC X1000 16.4 Register Map Figure 32. USB Register Map Memory Space EHCI Host PCI Header D:20,F:3 PCI Space CPU Core MBAR Host Bridge D:0,F:0 EHCI Host Mem Registers PCI CAM (I/O) Bus 0 PCIe* D:23 SPI1 F:1 I2C*/GPIO F:2 IO Fabric D:21 SPI0 F:0 Memory Space OHCI Host PCI Header D:20,F:4 PCI ECAM (Mem) RP0 F:0 MBAR RP0 F:1 OHCI Host Mem Registers Legacy Bridge D:31, F:0 SDIO/eMMC F:0 EHCI Host F:3 OCHI Host F:4 HSUART1 F:5 IO Fabric D:20 USB Device F:2 Memory Space USB Device PCI Header D:20,F:2 HSUART0 F:1 MBAR MAC0 F:6 USB Device Mem Registers MAC1 F:7 See Chapter 5.0, “Register Access Methods” for additional information. 16.5 PCI Configuration Registers 16.5.1 USB Device Table 103. Summary of PCI Configuration Registers—0/20/2 Offset Start Offset End Register ID—Description Default Value 0h 1h “Vendor ID (VENDOR_ID)—Offset 0h” on page 438 8086h 2h 3h “Device ID (DEVICE_ID)—Offset 2h” on page 439 0939h 4h 5h “Command Register (COMMAND_REGISTER)—Offset 4h” on page 439 0000h 6h 7h “Status Register (STATUS)—Offset 6h” on page 440 0010h August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 437 Intel® Quark™ SoC X1000—USB 2.0 Table 103. Offset Start Summary of PCI Configuration Registers—0/20/2 (Continued) Offset End Default Value Register ID—Description 8h Bh “Revision ID and Class Code (REV_ID_CLASS_CODE)—Offset 8h” on page 440 0C03FE10h Ch Ch “Cache Line Size (CACHE_LINE_SIZE)—Offset Ch” on page 441 00h Dh Dh “Latency Timer (LATENCY_TIMER)—Offset Dh” on page 441 00h Eh Eh “Header Type (HEADER_TYPE)—Offset Eh” on page 442 80h Fh Fh “BIST (BIST)—Offset Fh” on page 442 00h 10h 13h “Base Address Register (BAR0)—Offset 10h” on page 443 00000000h 28h 2Bh “Cardbus CIS Pointer (CARDBUS_CIS_POINTER)—Offset 28h” on page 443 00000000h 2Ch 2Dh “Subsystem Vendor ID (SUB_SYS_VENDOR_ID)—Offset 2Ch” on page 444 0000h 2Eh 2Fh “Subsystem ID (SUB_SYS_ID)—Offset 2Eh” on page 444 0000h 30h 33h “Expansion ROM Base Address (EXP_ROM_BASE_ADR)—Offset 30h” on page 444 00000000h 34h 37h “Capabilities Pointer (CAP_POINTER)—Offset 34h” on page 445 00000080h 3Ch 3Ch “Interrupt Line Register (INTR_LINE)—Offset 3Ch” on page 445 00h 3Dh 3Dh “Interrupt Pin Register (INTR_PIN)—Offset 3Dh” on page 446 00h 3Eh 3Eh “MIN_GNT (MIN_GNT)—Offset 3Eh” on page 446 00h 3Fh 3Fh “MAX_LAT (MAX_LAT)—Offset 3Fh” on page 446 00h 80h 80h “Capability ID (PM_CAP_ID)—Offset 80h” on page 447 01h 81h 81h “Next Capability Pointer (PM_NXT_CAP_PTR)—Offset 81h” on page 447 A0h 82h 83h “Power Management Capabilities (PMC)—Offset 82h” on page 447 4803h 84h 85h “Power Management Control/Status Register (PMCSR)—Offset 84h” on page 448 0008h 86h “PM CSR PCI-to-PCI Bridge Support Extension (PMCSR_BSE)—Offset 86h” on page 449 00h 87h 87h “Power Management Data Register (DATA_REGISTER)—Offset 87h” on page 449 00h A0h A0h “Capability ID (MSI_CAP_ID)—Offset A0h” on page 450 05h A1h A1h “Next Capability Pointer (MSI_NXT_CAP_PTR)—Offset A1h” on page 450 00h A2h A3h “Message Control (MESSAGE_CTRL)—Offset A2h” on page 450 0100h A4h A7h “Message Address (MESSAGE_ADDR)—Offset A4h” on page 451 00000000h A8h A9h “Message Data (MESSAGE_DATA)—Offset A8h” on page 451 0000h ACh AFh “Mask Bits for MSI (PER_VEC_MASK)—Offset ACh” on page 452 00000000h B0h B3h “Pending Bits for MSI (PER_VEC_PEND)—Offset B0h” on page 452 00000000h 86h 16.5.1.1 Vendor ID (VENDOR_ID)—Offset 0h Access Method Type: PCI Configuration Register (Size: 16 bits) VENDOR_ID: [B:0, D:20, F:2] + 0h Default: 8086h 15 12 0 0 0 8 0 0 0 4 0 1 0 0 0 0 0 1 1 0 value 1 Intel® Quark™ SoC X1000 Datasheet 438 August 2015 Document Number: 329676-005US USB 2.0—Intel® Quark™ SoC X1000 Bit Range Default & Access 8086h RO 15: 0 16.5.1.2 Description Vendor ID (value): PCI Vendor ID for Intel Device ID (DEVICE_ID)—Offset 2h Access Method Type: PCI Configuration Register (Size: 16 bits) DEVICE_ID: [B:0, D:20, F:2] + 2h Default: 0939h 15 0 0 0 8 1 0 0 4 1 0 0 1 0 1 1 0 0 1 value 0 12 Bit Range Default & Access 0939h RO 15: 0 16.5.1.3 Description Device ID (value): PCI Device ID Command Register (COMMAND_REGISTER)—Offset 4h Access Method Type: PCI Configuration Register (Size: 16 bits) COMMAND_REGISTER: [B:0, D:20, F:2] + 4h Default: 0000h 0 0 0 0 0 0 0 0 0 RSVD 0 MEMen 0 0 MasEn 0 4 RSVD 0 SERREn 0 8 RSVD 0 RSVD0 0 12 IntrDis 15 Bit Range Default & Access 15: 11 0h RO RSVD0 (RSVD0): Reserved 10 0b RW Interrupt Disable (IntrDis): Interrupt disable. Disables generation of interrupt messages in the PCI Express function. 1 =) disabled, 0 =) not disabled 9 0h RO Reserved (RSVD): Reserved. 8 0b RW SERR Enable (SERREn): When set, this bit enables the non-fatal and fatal errors detected by the function to be reported to the root complex. 7: 3 00h RO Reserved (RSVD): Reserved. 2 0b RW Bus Master Enable (MasEn): 0=)disables upstream requests 1=)enables upstream requests. 1 0b RW Memory Space Enable (MEMen): Device support for Memory transactions. 0 =) not supported. 1 =) supported. August 2015 Document Number: 329676-005US Description Intel® Quark™ SoC X1000 Datasheet 439 Intel® Quark™ SoC X1000—USB 2.0 Bit Range Default & Access 0h RO 0 16.5.1.4 Description Reserved (RSVD): Reserved. Status Register (STATUS)—Offset 6h Access Method Type: PCI Configuration Register (Size: 16 bits) STATUS: [B:0, D:20, F:2] + 6h Default: 0010h Bit Range 16.5.1.5 Default & Access 0 1 0 0 0 0 RSVD1 0 IntrStatus 0 0 hasCapList 0 capable_66Mhz 0 RSVD 0 FastB2B 0 4 RSVD 0 DEVSEL 0 8 RSVD 0 RcdMasAb 0 SigSysErr 12 RSVD0 15 Description 15 0h RO RSVD0 (RSVD0): Reserved 14 0b RW Signaled System Error (SigSysErr): Set when a function detects a system error and the SERR Enable bit is set 13 0b RW Received master abort (RcdMasAb): Set when requester receives a completion with Unsupported Request completion status 12: 11 0h RO Reserved (RSVD): Reserved. 10: 9 0b RO DEVSEL Timing (DEVSEL): Deprecated: Hardwired to 0 8 0h RO Reserved (RSVD): Reserved. 7 0b RO Fast Back-to-Back Capable (FastB2B): Deprecated: Hardwired to 0 6 0h RO Reserved (RSVD): Reserved. 5 0b RO 66MHz-Capable (capable_66Mhz): Deprecated: Hardwired to 0 4 1h RO Capabilities List (hasCapList): Indicates the presence of one or more capability register sets. 3 0b RO Interrupt Status (IntrStatus): Indicates that the function has a legacy interrupt request outstanding. This bit has no meaning if Message Signaled Interrupts are being used 2: 0 0h RO RSVD1 (RSVD1): Reserved Revision ID and Class Code (REV_ID_CLASS_CODE)—Offset 8h Access Method Intel® Quark™ SoC X1000 Datasheet 440 August 2015 Document Number: 329676-005US USB 2.0—Intel® Quark™ SoC X1000 Type: PCI Configuration Register (Size: 32 bits) REV_ID_CLASS_CODE: [B:0, D:20, F:2] + 8h Default: 0C03FE10h 0 0 1 1 0 0 20 0 0 0 16.5.1.6 0 0 1 1 12 1 1 1 subClassCode 0 16 1 8 1 1 1 0 4 0 0 0 1 0 0 0 0 0 rev_id 0 24 classCode 0 28 progIntf 31 Bit Range Default & Access 31: 24 0Ch RO Class Code (classCode): Broadly classifies the type of function that the device performs. 23: 16 03h RO Sub-Class Code (subClassCode): Identifies more specifically (than the class_code byte) the function of the device. 15: 8 FEh RO Programming Interface (progIntf): Used to define the register set variation within a particular sub-class. 7: 0 10h RO Revision ID (rev_id): Assigned by the function manufacturer and identifies the revision number of the function. Description Cache Line Size (CACHE_LINE_SIZE)—Offset Ch Access Method Type: PCI Configuration Register (Size: 8 bits) CACHE_LINE_SIZE: [B:0, D:20, F:2] + Ch Default: 00h 7 4 0 0 0 0 0 0 0 0 value 0 16.5.1.7 Bit Range Default & Access Description 7: 0 0h RW Cache Line Size (value): Implemented as a R/W register for legacy purposes but has no effect on device functionality. Latency Timer (LATENCY_TIMER)—Offset Dh Access Method Type: PCI Configuration Register (Size: 8 bits) LATENCY_TIMER: [B:0, D:20, F:2] + Dh Default: 00h 7 0 0 0 0 0 0 0 0 value 0 4 August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 441 Intel® Quark™ SoC X1000—USB 2.0 16.5.1.8 Bit Range Default & Access 7: 0 0h RO Description Latency Timer (value): Deprecated. Hardwire to 0. Header Type (HEADER_TYPE)—Offset Eh Access Method Type: PCI Configuration Register (Size: 8 bits) HEADER_TYPE: [B:0, D:20, F:2] + Eh Default: 80h 7 4 0 0 0 multiFnDev Bit Range 16.5.1.9 0 0 0 0 cfgHdrFormat 1 0 Default & Access Description 7 1h RO Multi-Function Device (multiFnDev): Hard-wired to 1 to indicate that this is a multifunction device 6: 0 0h RO Configuration Header Format (cfgHdrFormat): Hard-wired to 0 to indicate that this configuration header is a Type 0 header, i.e. it is an endpoint rather than a bridge. BIST (BIST)—Offset Fh Access Method Type: PCI Configuration Register (Size: 8 bits) BIST: [B:0, D:20, F:2] + Fh Default: 00h 4 Bit Range start_bist 0 0 0 RSVD 0 BIST_capable 0 0 Default & Access 0 0 Description 7 0h RO BIST_capable (BIST_capable): Hard-wired to 0. (Returns 1 if the function implements a BIST) 6 0h RO Start (start_bist): Set to start the functions BIST if BIST is supported. 5: 4 0h RO Reserved (RSVD): Reserved. Intel® Quark™ SoC X1000 Datasheet 442 0 comp_code 7 August 2015 Document Number: 329676-005US USB 2.0—Intel® Quark™ SoC X1000 16.5.1.10 Bit Range Default & Access 3: 0 0h RO Description Completion Code (comp_code): Completion code having run BIST if BIST is supported. 0=)success. non-zero=)failure Base Address Register (BAR0)—Offset 10h Access Method Type: PCI Configuration Register (Size: 32 bits) BAR0: [B:0, D:20, F:2] + 10h Default: 00000000h 0 0 0 0 0 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 16.5.1.11 0 0 0 0 RSVD 0 4 0 0 0 0 0 isIO 0 20 memType 0 24 address 0 28 prefetchable 31 Bit Range Default & Access Description 31: 12 0h RW address (address): Used to determine the size of memory required by the device and to assign a start address for this required amount of memory. 11: 4 00h RO Reserved (RSVD): Reserved. 3 0b RO Prefetchable (prefetchable): Defines the block of memory as prefetchable or not. A block of memory is prefetchable if it fulfils the following 3 conditions (1) no side effects on reads, (2) the device returns all bytes on reads regardless of the byte enables, and (3) host bridges can merge processor writes into this range without causing errors. Hardwired to 0 2: 1 00b RO Type (memType): Hardwired to 0 to indicate a 32-bit decoder 0 0b RO Memory Space Indicator (isIO): Hardwired to 0 to indicate the register is a memory address decoder Cardbus CIS Pointer (CARDBUS_CIS_POINTER)—Offset 28h Access Method Type: PCI Configuration Register (Size: 32 bits) CARDBUS_CIS_POINTER: [B:0, D:20, F:2] + 28h Default: 00000000h 31 0 0 0 24 0 0 0 0 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 0 4 0 0 0 0 0 0 0 0 0 value 0 28 August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 443 Intel® Quark™ SoC X1000—USB 2.0 Bit Range Default & Access 0h RO 31: 0 16.5.1.12 Description Cardbus CIS Pointer (value): Reserved. Hardwire to 0. Subsystem Vendor ID (SUB_SYS_VENDOR_ID)—Offset 2Ch Access Method Type: PCI Configuration Register (Size: 16 bits) SUB_SYS_VENDOR_ID: [B:0, D:20, F:2] + 2Ch Default: 0000h 15 0 0 0 8 0 0 0 4 0 0 0 0 0 0 0 0 0 0 value 0 12 Bit Range Default & Access 0h RO 15: 0 16.5.1.13 Description Subsystem Vendor ID (value): PCI Subsystem Vendor ID Subsystem ID (SUB_SYS_ID)—Offset 2Eh Access Method Type: PCI Configuration Register (Size: 16 bits) SUB_SYS_ID: [B:0, D:20, F:2] + 2Eh Default: 0000h 15 0 0 0 8 0 0 0 4 0 0 0 0 0 0 0 0 0 0 value 0 12 Bit Range 15: 0 16.5.1.14 Default & Access 0h RO Description Subsystem ID (value): PCI Subsystem ID Expansion ROM Base Address (EXP_ROM_BASE_ADR)—Offset 30h Access Method Type: PCI Configuration Register (Size: 32 bits) EXP_ROM_BASE_ADR: [B:0, D:20, F:2] + 30h Default: 00000000h Intel® Quark™ SoC X1000 Datasheet 444 August 2015 Document Number: 329676-005US USB 2.0—Intel® Quark™ SoC X1000 0 0 0 0 0 0 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 0 4 0 16.5.1.15 0 0 0 0 0 0 0 0 AddrDecodeEn 0 24 ROM_base_addr 0 28 RSVD 31 Bit Range Default & Access Description 31: 11 0h RW ROM Start Address (ROM_base_addr): Used to determine the size of memory required by the ROM and to assign a start address for this required amount of memory. 10: 1 000h RO 0 0h RW Reserved (RSVD): Reserved. Address Decode Enable (AddrDecodeEn): A 1 in this field enables the function's ROM address decoder assuming that the Memory Space bit in the Command Register is also set to 1 Capabilities Pointer (CAP_POINTER)—Offset 34h Access Method Type: PCI Configuration Register (Size: 32 bits) CAP_POINTER: [B:0, D:20, F:2] + 34h Default: 00000080h 31 0 0 0 24 0 0 0 0 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 0 4 1 0 0 Bit Range 16.5.1.16 0 0 0 0 0 0 value RSVD0 0 28 Default & Access Description 31: 8 0h RO RSVD0 (RSVD0): Reserved 7: 0 80h RO Capabilities Pointer (value): Pointer to memory location of first entry of linked list of configuration register sets each of which supports a feature. Points to PM (power management) register set at location 0x80 Interrupt Line Register (INTR_LINE)—Offset 3Ch Access Method Type: PCI Configuration Register (Size: 8 bits) INTR_LINE: [B:0, D:20, F:2] + 3Ch Default: 00h 7 0 0 0 0 0 0 0 0 value 0 4 August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 445 Intel® Quark™ SoC X1000—USB 2.0 16.5.1.17 Bit Range Default & Access Description 7: 0 0h RW Interrupt Line Register (value): The value in this register tells which input of the system interrupt controller(s) the device's interrupt pin is connected to. The device itself does not use this value, rather it is used by device drivers and operating systems. Device drivers and operating systems can use this information to determine priority and vector information. Interrupt Pin Register (INTR_PIN)—Offset 3Dh Access Method Type: PCI Configuration Register (Size: 8 bits) INTR_PIN: [B:0, D:20, F:2] + 3Dh Default: 00h 7 4 0 0 0 0 0 0 0 value 0 0 Bit Range 7: 0 16.5.1.18 Default & Access Description 03h RO Interrupt Pin Register (value): The Interrupt Pin register tells which interrupt pin the device (or device function) uses. A value of 1 corresponds to INTA#. A value of 2 corresponds to INTB#. A value of 3 corresponds to INTC#. A value of 4 corresponds to INTD#. Devices (or device functions) that do not use an interrupt pin must put a 0 in this register. The values 05h through FFh are reserved. For this system function 0 is connected to INTA, 1 to INTB, 2 to INTC 3 to INTD, 4 to INTA, 5 to INTB etc. MIN_GNT (MIN_GNT)—Offset 3Eh Access Method Type: PCI Configuration Register (Size: 8 bits) MIN_GNT: [B:0, D:20, F:2] + 3Eh Default: 00h 7 4 0 0 0 0 0 0 0 value 0 0 16.5.1.19 Bit Range Default & Access 7: 0 0h RO Description MIN_GNT (value): Hardwired to 0 MAX_LAT (MAX_LAT)—Offset 3Fh Access Method Type: PCI Configuration Register (Size: 8 bits) MAX_LAT: [B:0, D:20, F:2] + 3Fh Default: 00h Intel® Quark™ SoC X1000 Datasheet 446 August 2015 Document Number: 329676-005US USB 2.0—Intel® Quark™ SoC X1000 7 4 0 0 0 0 0 0 0 value 0 0 16.5.1.20 Bit Range Default & Access 7: 0 0h RO Description MAX_LAT (value): Hardwired to 0 Capability ID (PM_CAP_ID)—Offset 80h Access Method Type: PCI Configuration Register (Size: 8 bits) PM_CAP_ID: [B:0, D:20, F:2] + 80h Default: 01h 7 4 0 0 0 0 0 0 1 value 0 0 16.5.1.21 Bit Range Default & Access 7: 0 01h RO Description Capability ID (value): Identifies the feature associated with this register set. Hardwired value as per PCI SIG assigned capability ID Next Capability Pointer (PM_NXT_CAP_PTR)—Offset 81h Access Method Type: PCI Configuration Register (Size: 8 bits) PM_NXT_CAP_PTR: [B:0, D:20, F:2] + 81h Default: A0h 7 4 0 1 0 0 0 0 0 value 1 0 16.5.1.22 Bit Range Default & Access 7: 0 a0h RO Description Next Capability Pointer (value): Pointer to the next register set of feature specific configuration registers. Hardwired to 0xA0 to point to the MSI Capability Structure Power Management Capabilities (PMC)—Offset 82h Access Method Type: PCI Configuration Register (Size: 16 bits) August 2015 Document Number: 329676-005US PMC: [B:0, D:20, F:2] + 82h Intel® Quark™ SoC X1000 Datasheet 447 Intel® Quark™ SoC X1000—USB 2.0 Default: 4803h 16.5.1.23 0 4 0 0 0 0 0 0 0 1 1 version 0 PME_clock 0 RSVD 8 1 DSI 0 aux_curr 0 D1_support 12 1 PME_support 0 D2_support 15 Bit Range Default & Access Description 15: 11 09h RO PME Support (PME_support): PME_Support field Indicates the PM states within which the function is capable of sending a PME (Power Management Event) message. 0 in a bit =) PME is not supported in the corresponding PM state, where bit indexes 11,12,13,14,15 correspond to PM states D0, D1, D2, D3hot, D3cold respectively. 10 0h RO D2 Support (D2_support): Hardwired to 0 as the D2 state is not supported 9 0h RO D1 Support (D1_support): Hardwired to 0 as the D1 state is not supported 8: 6 0h RO Aux Current (aux_curr): Hardwired to 0 as the D3hot state is not supported 5 0h RO Device Specific Initialisation (DSI): Hardwired to 0 to indicate that the device does not require a device specific initialisation sequence following transition to the D0 uninitialised state 4 0h RO Reserved (RSVD): Reserved. 3 0h RO PME Clock (PME_clock): Deprecated. Hardwired to 0 2: 0 011b RO Version (version): This function complies with revision 1.2 of the PCI Power Management Interface Specification Power Management Control/Status Register (PMCSR)—Offset 84h Access Method Type: PCI Configuration Register (Size: 16 bits) PMCSR: [B:0, D:20, F:2] + 84h Default: 0008h 0 0 0 0 0 0 0 0 0 0 1 0 RSVD 0 4 0 0 0h RW PME Status (PME_status): Set if function has experienced a PME (even if PME_en (bit 8 of PMCSR register) is not set). 0h RO Data Scale (Data_scale): Hardwired to 0 as the data register is not supported 15 14: 13 Intel® Quark™ SoC X1000 Datasheet 448 power_state Description RSVD Default & Access PME_en Bit Range Data_select Data_scale 0 8 PME_status 0 12 no_soft_reset 15 August 2015 Document Number: 329676-005US USB 2.0—Intel® Quark™ SoC X1000 Bit Range 16.5.1.24 Default & Access Description 12: 9 0h RO Data Select (Data_select): Hardwired to 0 as the data register is not supported 8 0b RW PME Enable (PME_en): Enable device function to send PME messages when an event occurs. 1=)enabled. 0=)disabled 7: 4 0h RO Reserved (RSVD): Reserved. 3 1b RO No Soft Reset (no_soft_reset): Devices do perform an internal reset when transitioning from D3hot to D0 2 0h RO Reserved (RSVD): Reserved. 1: 0 00b RW Power State (power_state): Allows software to read current PM state or transition device to a new PM state, where 2'b00 = D0, 2'b01=D1, 2'b10=D2, 2'b11=D3hot PM CSR PCI-to-PCI Bridge Support Extension (PMCSR_BSE)—Offset 86h Access Method Type: PCI Configuration Register (Size: 8 bits) PMCSR_BSE: [B:0, D:20, F:2] + 86h Default: 00h 7 4 0 0 0 0 0 0 0 value 0 0 16.5.1.25 Bit Range Default & Access 7: 0 0h RO Description PM CSR PCI-to-PCI Bridge Support Extension (value): Not Supported. Hardwired to 0. Power Management Data Register (DATA_REGISTER)—Offset 87h Access Method Type: PCI Configuration Register (Size: 8 bits) DATA_REGISTER: [B:0, D:20, F:2] + 87h Default: 00h 7 4 0 0 0 0 0 0 0 value 0 0 Bit Range Default & Access 7: 0 0h RO August 2015 Document Number: 329676-005US Description Power Management Data Register (value): Not Supported. Hardwired to 0 Intel® Quark™ SoC X1000 Datasheet 449 Intel® Quark™ SoC X1000—USB 2.0 16.5.1.26 Capability ID (MSI_CAP_ID)—Offset A0h Access Method Type: PCI Configuration Register (Size: 8 bits) MSI_CAP_ID: [B:0, D:20, F:2] + A0h Default: 05h 7 4 0 0 0 0 1 0 1 value 0 0 16.5.1.27 Bit Range Default & Access 7: 0 05h RO Description Capability ID (value): Identifies the feature associated with this register set. Hardwired value as per PCI SIG assigned capability ID Next Capability Pointer (MSI_NXT_CAP_PTR)—Offset A1h Access Method Type: PCI Configuration Register (Size: 8 bits) MSI_NXT_CAP_PTR: [B:0, D:20, F:2] + A1h Default: 00h 7 4 0 0 0 0 0 0 0 0 value 0 16.5.1.28 Bit Range Default & Access Description 7: 0 00h RO Next Capability Pointer (value): Hardwired to 0 as this is the last capability structure in the chain Message Control (MESSAGE_CTRL)—Offset A2h Access Method Type: PCI Configuration Register (Size: 16 bits) MESSAGE_CTRL: [B:0, D:20, F:2] + A2h Default: 0100h Intel® Quark™ SoC X1000 Datasheet 450 0 0 1 0 0 0 0 0 0 0 0 MSIEnable 0 0 multiMsgCap 0 4 multiMsgEn 0 8 bit64Cap 0 RSVD0 0 12 perVecMskCap 15 August 2015 Document Number: 329676-005US USB 2.0—Intel® Quark™ SoC X1000 Bit Range 16.5.1.29 Default & Access Description 15: 9 0h RO RSVD0 (RSVD0): Reserved 8 1h RO Per Vector Masking Capable (perVecMskCap): Hardwired to 1 to indicate the function supports PVM 7 0h RO 64 bit Address Capabale (bit64Cap): This bit is hardwired to 0 to indicate that the function is not capable of sending a 64-bit message address. 6: 4 0h RW Multi-Message Enable (multiMsgEn): As only one vector is supported per function, software should only write a value of 0x0 to this field 3: 1 0h RO Multiple Message Enable (multiMsgCap): This field is hardwired to 0x0 to indicate that the function is requesting a single vector 0 0h RW MSI Enable (MSIEnable): Set to enable MSI to request service. If set then it's prohibited to use the INTx pin. System configuration software sets this bit to enable MSI. Message Address (MESSAGE_ADDR)—Offset A4h Access Method Type: PCI Configuration Register (Size: 32 bits) MESSAGE_ADDR: [B:0, D:20, F:2] + A4h Default: 00000000h 28 0 0 0 0 0 0 0 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 0 4 0 0 0 0 0 0 0 address 0 24 Bit Range 16.5.1.30 0 0 RSVD0 31 Default & Access Description 31: 2 0h RW Message Address (address): If the Message Enable bit (bit 0 of the Message Control register) is set, the contents of this register specify the DWORD-aligned address (AD[31:2]) for the MSI memory write transaction. AD[1:0] are driven to zero during the address phase. This field is read/write 1: 0 0h RO RSVD0 (RSVD0): Reserved Message Data (MESSAGE_DATA)—Offset A8h Access Method Type: PCI Configuration Register (Size: 16 bits) MESSAGE_DATA: [B:0, D:20, F:2] + A8h Default: 0000h 15 0 0 0 8 0 0 0 4 0 0 0 0 0 0 0 0 0 0 MsgData 0 12 August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 451 Intel® Quark™ SoC X1000—USB 2.0 Bit Range Default & Access Description 0h RW Data Field (MsgData): System-specified message data. If the Message Enable bit (bit 0 of the Message Control register) is set, the message data is driven onto the lower word (AD[15:0]) of the memory write transactions data phase. AD[31:16] are driven to zero during the memory write transactions data phase. C/BE[3::0]# are asserted during the data phase of the memory write transaction. None of the message bits will be changed by hardware 15: 0 16.5.1.31 Mask Bits for MSI (PER_VEC_MASK)—Offset ACh Access Method Type: PCI Configuration Register (Size: 32 bits) PER_VEC_MASK: [B:0, D:20, F:2] + ACh Default: 00000000h 31 0 0 0 24 0 0 0 0 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 0 4 0 0 0 0 0 0 0 0 Bit Range 16.5.1.32 0 MSIMask RSVD0 0 28 Default & Access Description 31: 1 0h RO RSVD0 (RSVD0): Reserved 0 0h RW Vector 0 Mask (MSIMask): Mask Bit for Vector 0. If this bit is set, the function will not send MSI messages Pending Bits for MSI (PER_VEC_PEND)—Offset B0h Access Method Type: PCI Configuration Register (Size: 32 bits) PER_VEC_PEND: [B:0, D:20, F:2] + B0h Default: 00000000h 31 0 0 0 24 0 0 0 0 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 Bit Range Default & Access 0 0 0 0 0 0 0 0 0 Description 31: 1 0h RO RSVD0 (RSVD0): Reserved 0 0h RO Vector 0 Pending (value): Pending Bit for Vector 0. Intel® Quark™ SoC X1000 Datasheet 452 0 4 value RSVD0 0 28 August 2015 Document Number: 329676-005US USB 2.0—Intel® Quark™ SoC X1000 16.5.2 USB EHCI Table 104. Summary of PCI Configuration Registers—0/20/3 Offset Start Offset End Default Value Register ID—Description 0h 1h “Vendor ID (VENDOR_ID)—Offset 0h” on page 438 8086h 2h 3h “Device ID (DEVICE_ID)—Offset 2h” on page 439 0939h 4h 5h “Command Register (COMMAND_REGISTER)—Offset 4h” on page 439 0000h 6h 7h “Status Register (STATUS)—Offset 6h” on page 440 0010h 8h Bh “Revision ID and Class Code (REV_ID_CLASS_CODE)—Offset 8h” on page 440 0C032010h Ch Ch “Cache Line Size (CACHE_LINE_SIZE)—Offset Ch” on page 441 00h Dh Dh “Latency Timer (LATENCY_TIMER)—Offset Dh” on page 441 00h Eh Eh “Header Type (HEADER_TYPE)—Offset Eh” on page 442 80h Fh Fh “BIST (BIST)—Offset Fh” on page 457 00h 10h 13h “Base Address Register (BAR0)—Offset 10h” on page 458 00000000h 28h 2Bh “Cardbus CIS Pointer (CARDBUS_CIS_POINTER)—Offset 28h” on page 459 00000000h 2Ch 2Dh “Subsystem Vendor ID (SUB_SYS_VENDOR_ID)—Offset 2Ch” on page 459 0000h 2Eh 2Fh “Subsystem ID (SUB_SYS_ID)—Offset 2Eh” on page 459 0000h 30h 33h “Expansion ROM Base Address (EXP_ROM_BASE_ADR)—Offset 30h” on page 460 00000000h 34h 37h “Capabilities Pointer (CAP_POINTER)—Offset 34h” on page 460 00000080h 3Ch 3Ch “Interrupt Line Register (INTR_LINE)—Offset 3Ch” on page 460 00h 3Dh 3Dh “Interrupt Pin Register (INTR_PIN)—Offset 3Dh” on page 461 00h 3Eh 3Eh “MIN_GNT (MIN_GNT)—Offset 3Eh” on page 461 00h 3Fh 3Fh “MAX_LAT (MAX_LAT)—Offset 3Fh” on page 462 00h 60h 60h “Serial Bus Release Number Register (SBRN)—Offset 60h” on page 462 20h 61h 61h “Frame Length Adjustment Register (FLADJ)—Offset 61h” on page 462 20h 80h 80h “Capability ID (PM_CAP_ID)—Offset 80h” on page 463 01h 81h 81h “Next Capability Pointer (PM_NXT_CAP_PTR)—Offset 81h” on page 463 A0h 82h 83h “Power Management Capabilities (PMC)—Offset 82h” on page 463 F803h 84h 85h “Power Management Control/Status Register (PMCSR)—Offset 84h” on page 464 0008h 86h 86h “PM CSR PCI-to-PCI Bridge Support Extension (PMCSR_BSE)—Offset 86h” on page 465 00h 87h 87h “Power Management Data Register (DATA_REGISTER)—Offset 87h” on page 465 00h A0h A0h “Capability ID (MSI_CAP_ID)—Offset A0h” on page 465 05h A1h A1h “Next Capability Pointer (MSI_NXT_CAP_PTR)—Offset A1h” on page 466 C0h A2h A3h “Message Control (MESSAGE_CTRL)—Offset A2h” on page 466 0100h A4h A7h “Message Address (MESSAGE_ADDR)—Offset A4h” on page 467 00000000h A8h A9h “Message Data (MESSAGE_DATA)—Offset A8h” on page 467 0000h ACh AFh “Mask Bits for MSI (PER_VEC_MASK)—Offset ACh” on page 468 00000000h B0h B3h “Pending Bits for MSI (PER_VEC_PEND)—Offset B0h” on page 468 00000000h C0h C3h “USB Legacy Support Extended Capability (USBLEGSUP)—Offset C0h” on page 468 00000001h C4h C7h “USB Legacy Support Control/Status (USBLEGCTLSTS)—Offset C4h” on page 469 00000000h August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 453 Intel® Quark™ SoC X1000—USB 2.0 16.5.2.1 Vendor ID (VENDOR_ID)—Offset 0h Access Method Type: PCI Configuration Register (Size: 16 bits) VENDOR_ID: [B:0, D:20, F:3] + 0h Default: 8086h 15 0 0 0 8 0 0 0 4 0 1 0 0 0 0 0 1 1 0 1 0 0 1 value 1 12 Bit Range Default & Access 8086h RO 15: 0 16.5.2.2 Description Vendor ID (value): PCI Vendor ID for Intel Device ID (DEVICE_ID)—Offset 2h Access Method Type: PCI Configuration Register (Size: 16 bits) DEVICE_ID: [B:0, D:20, F:3] + 2h Default: 0939h 15 12 0 0 0 8 1 0 0 4 1 0 0 1 1 0 value 0 Bit Range Default & Access 0939h RO 15: 0 16.5.2.3 Description Device ID (value): PCI Device ID Command Register (COMMAND_REGISTER)—Offset 4h Access Method Type: PCI Configuration Register (Size: 16 bits) COMMAND_REGISTER: [B:0, D:20, F:3] + 4h Default: 0000h Bit Range Default & Access 15: 11 0h RO Intel® Quark™ SoC X1000 Datasheet 454 0 0 0 0 0 0 0 0 0 RSVD 0 MEMen 0 0 MasEn 0 4 RSVD 0 SERREn 0 8 RSVD 0 RSVD0 0 12 IntrDis 15 Description RSVD0 (RSVD0): Reserved August 2015 Document Number: 329676-005US USB 2.0—Intel® Quark™ SoC X1000 Bit Range 16.5.2.4 Default & Access Description 10 0b RW Interrupt Disable (IntrDis): Interrupt disable. Disables generation of interrupt messages in the PCI Express function. 1 =) disabled, 0 =) not disabled 9 0h RO Reserved (RSVD): Reserved. 8 0b RW SERR Enable (SERREn): When set, this bit enables the non-fatal and fatal errors detected by the function to be reported to the root complex. 7: 3 00h RO Reserved (RSVD): Reserved. 2 0b RW Bus Master Enable (MasEn): 0=)disables upstream requests 1=)enables upstream requests. 1 0b RW Memory Space Enable (MEMen): Device support for Memory transactions. 0 =) not supported. 1 =) supported. 0 0h RO Reserved (RSVD): Reserved. Status Register (STATUS)—Offset 6h Access Method Type: PCI Configuration Register (Size: 16 bits) STATUS: [B:0, D:20, F:3] + 6h Default: 0010h Bit Range Default & Access 0 1 0 0 0 0 RSVD1 0 0 IntrStatus 0 hasCapList 0 capable_66Mhz 0 RSVD 0 FastB2B 0 4 RSVD 0 DEVSEL 0 8 RSVD 0 RcdMasAb 0 SigSysErr 12 RSVD0 15 Description 15 0h RO RSVD0 (RSVD0): Reserved 14 0b RW Signaled System Error (SigSysErr): Set when a function detects a system error and the SERR Enable bit is set 13 0b RW Received master abort (RcdMasAb): Set when requester receives a completion with Unsupported Request completion status 12: 11 0h RO Reserved (RSVD): Reserved. 10: 9 0b RO DEVSEL Timing (DEVSEL): Deprecated: Hardwired to 0 8 0h RO Reserved (RSVD): Reserved. 7 0b RO Fast Back-to-Back Capable (FastB2B): Deprecated: Hardwired to 0 6 0h RO Reserved (RSVD): Reserved. August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 455 Intel® Quark™ SoC X1000—USB 2.0 Bit Range 16.5.2.5 Default & Access Description 5 0b RO 66MHz-Capable (capable_66Mhz): Deprecated: Hardwired to 0 4 1h RO Capabilities List (hasCapList): Indicates the presence of one or more capability register sets. 3 0b RO Interrupt Status (IntrStatus): Indicates that the function has a legacy interrupt request outstanding. This bit has no meaning if Message Signaled Interrupts are being used 2: 0 0h RO RSVD1 (RSVD1): Reserved Revision ID and Class Code (REV_ID_CLASS_CODE)—Offset 8h Access Method Type: PCI Configuration Register (Size: 32 bits) REV_ID_CLASS_CODE: [B:0, D:20, F:3] + 8h Default: 0C032010h 0 1 1 0 0 0 0 0 16.5.2.6 0 16 0 0 1 1 12 0 0 1 0 8 0 0 0 0 4 0 0 0 1 0 0 0 0 0 rev_id 0 20 progIntf 0 24 classCode 0 28 subClassCode 31 Bit Range Default & Access 31: 24 0Ch RO Class Code (classCode): Broadly classifies the type of function that the device performs. 23: 16 03h RO Sub-Class Code (subClassCode): Identifies more specifically (than the class_code byte) the function of the device. 15: 8 20h RO Programming Interface (progIntf): Used to define the register set variation within a particular sub-class. 7: 0 10h RO Revision ID (rev_id): Assigned by the function manufacturer and identifies the revision number of the function. Description Cache Line Size (CACHE_LINE_SIZE)—Offset Ch Access Method Type: PCI Configuration Register (Size: 8 bits) CACHE_LINE_SIZE: [B:0, D:20, F:3] + Ch Default: 00h 7 0 0 0 0 0 0 0 0 value 0 4 Intel® Quark™ SoC X1000 Datasheet 456 August 2015 Document Number: 329676-005US USB 2.0—Intel® Quark™ SoC X1000 16.5.2.7 Bit Range Default & Access Description 7: 0 0h RW Cache Line Size (value): Implemented as a R/W register for legacy purposes but has no effect on device functionality. Latency Timer (LATENCY_TIMER)—Offset Dh Access Method Type: PCI Configuration Register (Size: 8 bits) LATENCY_TIMER: [B:0, D:20, F:3] + Dh Default: 00h 7 4 0 0 0 0 0 0 0 value 0 0 16.5.2.8 Bit Range Default & Access 7: 0 0h RO Description Latency Timer (value): Deprecated. Hardwire to 0. Header Type (HEADER_TYPE)—Offset Eh Access Method Type: PCI Configuration Register (Size: 8 bits) HEADER_TYPE: [B:0, D:20, F:3] + Eh Default: 80h 7 4 0 0 multiFnDev Bit Range 16.5.2.9 0 0 0 0 0 cfgHdrFormat 1 0 Default & Access Description 7 1h RO Multi-Function Device (multiFnDev): Hard-wired to 1 to indicate that this is a multifunction device 6: 0 0h RO Configuration Header Format (cfgHdrFormat): Hard-wired to 0 to indicate that this configuration header is a Type 0 header, i.e. it is an endpoint rather than a bridge. BIST (BIST)—Offset Fh Access Method Type: PCI Configuration Register (Size: 8 bits) BIST: [B:0, D:20, F:3] + Fh Default: 00h August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 457 Intel® Quark™ SoC X1000—USB 2.0 7 4 0 0 0 0 0 0 comp_code RSVD BIST_capable Bit Range 16.5.2.10 0 start_bist 0 0 Default & Access Description 7 0h RO BIST_capable (BIST_capable): Hard-wired to 0. (Returns 1 if the function implements a BIST) 6 0h RO Start (start_bist): Set to start the functions BIST if BIST is supported. 5: 4 0h RO Reserved (RSVD): Reserved. 3: 0 0h RO Completion Code (comp_code): Completion code having run BIST if BIST is supported. 0=)success. non-zero=)failure Base Address Register (BAR0)—Offset 10h Access Method Type: PCI Configuration Register (Size: 32 bits) BAR0: [B:0, D:20, F:3] + 10h Default: 00000000h 0 24 0 0 0 0 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 4 0 RSVD 0 0 0 0 0 0 0 0 0 isIO 0 memType 28 0 address 0 prefetchable 31 Bit Range Default & Access Description 31: 12 0h RW address (address): Used to determine the size of memory required by the device and to assign a start address for this required amount of memory. 11: 4 00h RO Reserved (RSVD): Reserved. 3 0b RO Prefetchable (prefetchable): Defines the block of memory as prefetchable or not. A block of memory is prefetchable if it fulfils the following 3 conditions (1) no side effects on reads, (2) the device returns all bytes on reads regardless of the byte enables, and (3) host bridges can merge processor writes into this range without causing errors. Hardwired to 0 2: 1 00b RO Type (memType): Hardwired to 0 to indicate a 32-bit decoder 0 0b RO Memory Space Indicator (isIO): Hardwired to 0 to indicate the register is a memory address decoder Intel® Quark™ SoC X1000 Datasheet 458 August 2015 Document Number: 329676-005US USB 2.0—Intel® Quark™ SoC X1000 16.5.2.11 Cardbus CIS Pointer (CARDBUS_CIS_POINTER)—Offset 28h Access Method Type: PCI Configuration Register (Size: 32 bits) CARDBUS_CIS_POINTER: [B:0, D:20, F:3] + 28h Default: 00000000h 31 28 0 0 0 0 0 0 0 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 0 4 0 0 0 0 0 0 0 0 0 value 0 24 Bit Range Default & Access 0h RO 31: 0 16.5.2.12 Description Cardbus CIS Pointer (value): Reserved. Hardwire to 0. Subsystem Vendor ID (SUB_SYS_VENDOR_ID)—Offset 2Ch Access Method Type: PCI Configuration Register (Size: 16 bits) SUB_SYS_VENDOR_ID: [B:0, D:20, F:3] + 2Ch Default: 0000h 15 12 0 0 0 8 0 0 0 4 0 0 0 0 0 0 0 0 0 0 value 0 Bit Range Default & Access 0h RO 15: 0 16.5.2.13 Description Subsystem Vendor ID (value): PCI Subsystem Vendor ID Subsystem ID (SUB_SYS_ID)—Offset 2Eh Access Method Type: PCI Configuration Register (Size: 16 bits) SUB_SYS_ID: [B:0, D:20, F:3] + 2Eh Default: 0000h 15 0 0 0 8 0 0 0 4 0 0 0 0 0 0 0 0 0 0 value 0 12 Bit Range 15: 0 Default & Access 0h RO August 2015 Document Number: 329676-005US Description Subsystem ID (value): PCI Subsystem ID Intel® Quark™ SoC X1000 Datasheet 459 Intel® Quark™ SoC X1000—USB 2.0 16.5.2.14 Expansion ROM Base Address (EXP_ROM_BASE_ADR)—Offset 30h Access Method Type: PCI Configuration Register (Size: 32 bits) EXP_ROM_BASE_ADR: [B:0, D:20, F:3] + 30h Default: 00000000h 0 0 0 24 0 0 0 0 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 0 4 0 16.5.2.15 0 0 0 0 0 0 0 RSVD ROM_base_addr 0 28 0 AddrDecodeEn 31 Bit Range Default & Access Description 31: 11 0h RW ROM Start Address (ROM_base_addr): Used to determine the size of memory required by the ROM and to assign a start address for this required amount of memory. 10: 1 000h RO 0 0h RW Reserved (RSVD): Reserved. Address Decode Enable (AddrDecodeEn): A 1 in this field enables the function's ROM address decoder assuming that the Memory Space bit in the Command Register is also set to 1 Capabilities Pointer (CAP_POINTER)—Offset 34h Access Method Type: PCI Configuration Register (Size: 32 bits) CAP_POINTER: [B:0, D:20, F:3] + 34h Default: 00000080h 0 0 0 24 0 0 0 0 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 0 RSVD0 0 28 Bit Range 16.5.2.16 4 1 0 0 0 0 0 0 0 0 value 31 Default & Access Description 31: 8 0h RO RSVD0 (RSVD0): Reserved 7: 0 80h RO Capabilities Pointer (value): Pointer to memory location of first entry of linked list of configuration register sets each of which supports a feature. Points to PM (power management) register set at location 0x80 Interrupt Line Register (INTR_LINE)—Offset 3Ch Access Method Type: PCI Configuration Register (Size: 8 bits) Intel® Quark™ SoC X1000 Datasheet 460 INTR_LINE: [B:0, D:20, F:3] + 3Ch August 2015 Document Number: 329676-005US USB 2.0—Intel® Quark™ SoC X1000 Default: 00h 7 4 0 0 0 0 0 0 0 0 value 0 16.5.2.17 Bit Range Default & Access Description 7: 0 0h RW Interrupt Line Register (value): The value in this register tells which input of the system interrupt controller(s) the device's interrupt pin is connected to. The device itself does not use this value, rather it is used by device drivers and operating systems. Device drivers and operating systems can use this information to determine priority and vector information. Interrupt Pin Register (INTR_PIN)—Offset 3Dh Access Method Type: PCI Configuration Register (Size: 8 bits) INTR_PIN: [B:0, D:20, F:3] + 3Dh Default: 00h 7 4 0 0 0 0 0 0 0 value 0 0 Bit Range 7: 0 16.5.2.18 Default & Access Description 04h RO Interrupt Pin Register (value): The Interrupt Pin register tells which interrupt pin the device (or device function) uses. A value of 1 corresponds to INTA#. A value of 2 corresponds to INTB#. A value of 3 corresponds to INTC#. A value of 4 corresponds to INTD#. Devices (or device functions) that do not use an interrupt pin must put a 0 in this register. The values 05h through FFh are reserved. For this system function 0 is connected to INTA, 1 to INTB, 2 to INTC 3 to INTD, 4 to INTA, 5 to INTB etc. MIN_GNT (MIN_GNT)—Offset 3Eh Access Method Type: PCI Configuration Register (Size: 8 bits) MIN_GNT: [B:0, D:20, F:3] + 3Eh Default: 00h 7 4 0 0 0 0 0 0 0 value 0 0 Bit Range Default & Access 7: 0 0h RO August 2015 Document Number: 329676-005US Description MIN_GNT (value): Hardwired to 0 Intel® Quark™ SoC X1000 Datasheet 461 Intel® Quark™ SoC X1000—USB 2.0 16.5.2.19 MAX_LAT (MAX_LAT)—Offset 3Fh Access Method Type: PCI Configuration Register (Size: 8 bits) MAX_LAT: [B:0, D:20, F:3] + 3Fh Default: 00h 7 4 0 0 0 0 0 0 0 0 0 value 0 0 16.5.2.20 Bit Range Default & Access 7: 0 0h RO Description MAX_LAT (value): Hardwired to 0 Serial Bus Release Number Register (SBRN)—Offset 60h Access Method Type: PCI Configuration Register (Size: 8 bits) SBRN: [B:0, D:20, F:3] + 60h Default: 20h 7 4 0 1 0 0 0 0 SBRN 0 16.5.2.21 Bit Range Default & Access Description 7: 0 20h RO Serial Bus Specification Release Number (SBRN): Serial Bus Specification Release Number. Frame Length Adjustment Register (FLADJ)—Offset 61h Access Method Type: PCI Configuration Register (Size: 8 bits) FLADJ: [B:0, D:20, F:3] + 61h Default: 20h 7 4 0 1 0 RSVD0 Bit Range Default & Access 7: 6 0h RO Intel® Quark™ SoC X1000 Datasheet 462 0 0 0 0 0 FLADJ 0 Description RSVD0 (RSVD0): Reserved August 2015 Document Number: 329676-005US USB 2.0—Intel® Quark™ SoC X1000 16.5.2.22 Bit Range Default & Access 5: 0 20h RW Description Frame Length Timing Value (FLADJ): Each decimal value change to this register corresponds to 16 highspeed bit times. The SOF cycle time (number of SOF counter clock periods to generate a SOF micro-frame length) is equal to 59488 + value in this field. The default value is decimal 32 (20h), which gives a SOF cycle time of 60000. Capability ID (PM_CAP_ID)—Offset 80h Access Method Type: PCI Configuration Register (Size: 8 bits) PM_CAP_ID: [B:0, D:20, F:3] + 80h Default: 01h 7 4 0 0 0 0 0 0 1 value 0 0 16.5.2.23 Bit Range Default & Access 7: 0 01h RO Description Capability ID (value): Identifies the feature associated with this register set. Hardwired value as per PCI SIG assigned capability ID Next Capability Pointer (PM_NXT_CAP_PTR)—Offset 81h Access Method Type: PCI Configuration Register (Size: 8 bits) PM_NXT_CAP_PTR: [B:0, D:20, F:3] + 81h Default: A0h 7 4 0 1 0 0 0 0 0 0 value 1 16.5.2.24 Bit Range Default & Access 7: 0 a0h RO Description Next Capability Pointer (value): Pointer to the next register set of feature specific configuration registers. Hardwired to 0xA0 to point to the MSI Capability Structure Power Management Capabilities (PMC)—Offset 82h Access Method Type: PCI Configuration Register (Size: 16 bits) PMC: [B:0, D:20, F:3] + 82h Default: F803h August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 463 Intel® Quark™ SoC X1000—USB 2.0 16.5.2.25 0 0 0 0 0 0 0 1 1 version 0 PME_clock 0 RSVD 1 0 DSI 1 4 aux_curr 1 D1_support 1 8 PME_support 1 12 D2_support 15 Bit Range Default & Access Description 15: 11 1Fh RO PME Support (PME_support): PME_Support field Indicates the PM states within which the function is capable of sending a PME (Power Management Event) message. 0 in a bit =) PME is not supported in the corresponding PM state, where bit indexes 11,12,13,14,15 correspond to PM states D0, D1, D2, D3hot, D3cold respectively. 10 0h RO D2 Support (D2_support): Hardwired to 0 as the D2 state is not supported 9 0h RO D1 Support (D1_support): Hardwired to 0 as the D1 state is not supported 8: 6 0h RO Aux Current (aux_curr): Hardwired to 0 as the D3hot state is not supported 5 0h RO Device Specific Initialisation (DSI): Hardwired to 0 to indicate that the device does not require a device specific initialisation sequence following transition to the D0 uninitialised state 4 0h RO Reserved (RSVD): Reserved. 3 0h RO PME Clock (PME_clock): Deprecated. Hardwired to 0 2: 0 011b RO Version (version): This function complies with revision 1.2 of the PCI Power Management Interface Specification Power Management Control/Status Register (PMCSR)—Offset 84h Access Method Type: PCI Configuration Register (Size: 16 bits) PMCSR: [B:0, D:20, F:3] + 84h Default: 0008h 0 0 0 0 0 0 0 0 0 0 1 0 RSVD 0 4 0 0 0h RW PME Status (PME_status): Set if function has experienced a PME (even if PME_en (bit 8 of PMCSR register) is not set). 14: 13 0h RO Data Scale (Data_scale): Hardwired to 0 as the data register is not supported 12: 9 0h RO Data Select (Data_select): Hardwired to 0 as the data register is not supported 15 Intel® Quark™ SoC X1000 Datasheet 464 power_state Description RSVD Default & Access PME_en Bit Range Data_select Data_scale 0 8 PME_status 0 12 no_soft_reset 15 August 2015 Document Number: 329676-005US USB 2.0—Intel® Quark™ SoC X1000 Bit Range 16.5.2.26 Default & Access Description 8 0b RW PME Enable (PME_en): Enable device function to send PME messages when an event occurs. 1=)enabled. 0=)disabled 7: 4 0h RO Reserved (RSVD): Reserved. 3 1b RO No Soft Reset (no_soft_reset): Devices do perform an internal reset when transitioning from D3hot to D0 2 0h RO Reserved (RSVD): Reserved. 1: 0 00b RW Power State (power_state): Allows software to read current PM state or transition device to a new PM state, where 2'b00 = D0, 2'b01=D1, 2'b10=D2, 2'b11=D3hot PM CSR PCI-to-PCI Bridge Support Extension (PMCSR_BSE)—Offset 86h Access Method Type: PCI Configuration Register (Size: 8 bits) PMCSR_BSE: [B:0, D:20, F:3] + 86h Default: 00h 7 4 0 0 0 0 0 0 0 value 0 0 16.5.2.27 Bit Range Default & Access 7: 0 0h RO Description PM CSR PCI-to-PCI Bridge Support Extension (value): Not Supported. Hardwired to 0. Power Management Data Register (DATA_REGISTER)—Offset 87h Access Method Type: PCI Configuration Register (Size: 8 bits) DATA_REGISTER: [B:0, D:20, F:3] + 87h Default: 00h 7 4 0 0 0 0 0 0 0 value 0 0 16.5.2.28 Bit Range Default & Access 7: 0 0h RO Description Power Management Data Register (value): Not Supported. Hardwired to 0 Capability ID (MSI_CAP_ID)—Offset A0h Access Method August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 465 Intel® Quark™ SoC X1000—USB 2.0 Type: PCI Configuration Register (Size: 8 bits) MSI_CAP_ID: [B:0, D:20, F:3] + A0h Default: 05h 7 4 0 0 0 0 1 0 1 value 0 0 16.5.2.29 Bit Range Default & Access 7: 0 05h RO Description Capability ID (value): Identifies the feature associated with this register set. Hardwired value as per PCI SIG assigned capability ID Next Capability Pointer (MSI_NXT_CAP_PTR)—Offset A1h Access Method Type: PCI Configuration Register (Size: 8 bits) MSI_NXT_CAP_PTR: [B:0, D:20, F:3] + A1h Default: C0h 7 4 1 0 0 0 0 0 0 value 1 0 16.5.2.30 Bit Range Default & Access Description 7: 0 C0h RO Next Capability Pointer (value): Pointer to the next register set of feature specific configuration registers. Hardwired to 0xC0 to point to the USB Legacy Support Extended Capability Structure Message Control (MESSAGE_CTRL)—Offset A2h Access Method Type: PCI Configuration Register (Size: 16 bits) MESSAGE_CTRL: [B:0, D:20, F:3] + A2h Default: 0100h Bit Range 15: 9 Intel® Quark™ SoC X1000 Datasheet 466 0 0 1 0 Default & Access 0h RO 0 0 0 0 0 0 0 MSIEnable 0 0 multiMsgCap 0 4 multiMsgEn 0 8 bit64Cap 0 RSVD0 0 12 perVecMskCap 15 Description RSVD0 (RSVD0): Reserved August 2015 Document Number: 329676-005US USB 2.0—Intel® Quark™ SoC X1000 Bit Range 16.5.2.31 Default & Access Description 8 1h RO Per Vector Masking Capable (perVecMskCap): Hardwired to 1 to indicate the function supports PVM 7 0h RO 64 bit Address Capabale (bit64Cap): This bit is hardwired to 0 to indicate that the function is not capable of sending a 64-bit message address. 6: 4 0h RW Multi-Message Enable (multiMsgEn): As only one vector is supported per function, software should only write a value of 0x0 to this field 3: 1 0h RO Multiple Message Enable (multiMsgCap): This field is hardwired to 0x0 to indicate that the function is requesting a single vector 0 0h RW MSI Enable (MSIEnable): Set to enable MSI to request service. If set then it's prohibited to use the INTx pin. System configuration software sets this bit to enable MSI. Message Address (MESSAGE_ADDR)—Offset A4h Access Method Type: PCI Configuration Register (Size: 32 bits) MESSAGE_ADDR: [B:0, D:20, F:3] + A4h Default: 00000000h 28 0 0 0 0 0 0 0 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 0 4 0 0 0 0 0 0 0 address 0 24 Bit Range 16.5.2.32 0 0 RSVD0 31 Default & Access Description 31: 2 0h RW Message Address (address): If the Message Enable bit (bit 0 of the Message Control register) is set, the contents of this register specify the DWORD-aligned address (AD[31:2]) for the MSI memory write transaction. AD[1:0] are driven to zero during the address phase. This field is read/write 1: 0 0h RO RSVD0 (RSVD0): Reserved Message Data (MESSAGE_DATA)—Offset A8h Access Method Type: PCI Configuration Register (Size: 16 bits) MESSAGE_DATA: [B:0, D:20, F:3] + A8h Default: 0000h 15 0 0 0 8 0 0 0 4 0 0 0 0 0 0 0 0 0 0 MsgData 0 12 August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 467 Intel® Quark™ SoC X1000—USB 2.0 Bit Range Default & Access Description 0h RW Data Field (MsgData): System-specified message data. If the Message Enable bit (bit 0 of the Message Control register) is set, the message data is driven onto the lower word (AD[15:0]) of the memory write transactions data phase. AD[31:16] are driven to zero during the memory write transactions data phase. C/BE[3::0]# are asserted during the data phase of the memory write transaction. None of the message bits will be changed by hardware 15: 0 16.5.2.33 Mask Bits for MSI (PER_VEC_MASK)—Offset ACh Access Method Type: PCI Configuration Register (Size: 32 bits) PER_VEC_MASK: [B:0, D:20, F:3] + ACh Default: 00000000h 31 0 0 0 24 0 0 0 0 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 0 4 0 0 0 0 0 0 0 0 Bit Range 16.5.2.34 0 MSIMask RSVD0 0 28 Default & Access Description 31: 1 0h RO RSVD0 (RSVD0): Reserved 0 0h RW Vector 0 Mask (MSIMask): Mask Bit for Vector 0. If this bit is set, the function will not send MSI messages Pending Bits for MSI (PER_VEC_PEND)—Offset B0h Access Method Type: PCI Configuration Register (Size: 32 bits) PER_VEC_PEND: [B:0, D:20, F:3] + B0h Default: 00000000h 31 0 0 0 24 0 0 0 0 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 0 4 0 0 0 0 0 0 0 0 Bit Range 16.5.2.35 Default & Access 0 value RSVD0 0 28 Description 31: 1 0h RO RSVD0 (RSVD0): Reserved 0 0h RO Vector 0 Pending (value): Pending Bit for Vector 0. USB Legacy Support Extended Capability (USBLEGSUP)—Offset C0h Access Method Intel® Quark™ SoC X1000 Datasheet 468 August 2015 Document Number: 329676-005US USB 2.0—Intel® Quark™ SoC X1000 Type: PCI Configuration Register (Size: 32 bits) USBLEGSUP: [B:0, D:20, F:3] + C0h Default: 00000001h 0 0 0 0 HC_OS_Owned_Semaphore 0 0 0 0 0 0 0 0 0 0 0 8 0 0 0 0 4 0 0 0 0 0 0 0 0 1 Bit Range Default & Access 31: 25 0h RO RSVD0 (RSVD0): Reserved 0b RW HC OS Owned Semaphore (HC_OS_Owned_Semaphore): System software sets this bit to request ownership of the EHCI controller. Ownership is obtained when this bit reads as one and the HC BIOS Owned Semaphore bit reads as zero. 00h RO Reserved (RSVD): Reserved. 16 0b RW HC BIOS Owned Semaphore (HC_BIOS_Owned_Semaphore): The BIOS sets this bit to establish ownership of the EHCI controller. System BIOS will set this bit to a zero in response to a request for ownership of the EHCI controller by system software. 15: 8 0h RO Next EHCI Extended Capability Pointer (NXT_CAP_PTR): This field points to the PCI configuration space offset of the next extended capability pointer. A value of 00h indicates the end of the extended capability list. 7: 0 01h RO Capability ID (CAP_ID): This field identifies the extended capability. A value of 01h identifies the capability as Legacy Support. This extended capability requires one additional 32-bit register for control/status information, and this register is located at offset EECP+04h. 24 23: 17 16.5.2.36 0 12 CAP_ID 0 16 NXT_CAP_PTR 0 20 HC_BIOS_Owned_Semaphore 0 24 RSVD0 0 28 RSVD 31 Description USB Legacy Support Control/Status (USBLEGCTLSTS)—Offset C4h Access Method Type: PCI Configuration Register (Size: 32 bits) USBLEGCTLSTS: [B:0, D:20, F:3] + C4h Default: 00000000h August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 469 Intel® Quark™ SoC X1000—USB 2.0 Bit Range 0 Default & Access 0 0 0 0 0 0 0 0 0 0 0 0 0 SMI_USB_ERROR_EN 0 SMI_USB_COMPLETE_EN 0 SMI_PORT_CHANGE_DETECT_EN 0 SMI_FRAME_LIST_ROLLOVER_EN 0 0 SMI_ASYNC_ADVANCE_EN 0 4 SMI_HOST_SYSTEM_ERROR_EN 0 8 RSVD 0 SMI_OS_OWNR_CHANGE_EN 0 SMI_BAR_EN 0 SMI_PCI_CMD_EN 0 SMI_USB_ERROR 0 12 SMI_USB_COMPLETE 0 SMI_PORT_CHANGE_DETECT 0 SMI_FRAME_LIST_ROLLOVER 0 16 SMI_ASYNC_ADVANCE 0 20 SMI_HOST_SYSTEM_ERROR 0 24 RSVD 0 SMI_OS_OWNR_CHANGE SMI_BAR 0 28 SMI_PCI_CMD 31 Description 31 0b RW SMI on BAR (SMI_BAR): This bit is set to one whenever the Base Address Register (BAR) is written. 30 0b RW SMI on PCI Command (SMI_PCI_CMD): This bit is set to one whenever the PCI Command Register is written. 29 0b RW SMI on OS Ownership Change (SMI_OS_OWNR_CHANGE): This bit is set to one whenever the HC OS Owned Semaphore bit in the USBLEGSUP register transitions from 1 to a 0 or 0 to a 1 00h RO Reserved (RSVD): Reserved. 21 0b RO SMI on Async Advance (SMI_ASYNC_ADVANCE): Shadow bit of the Interrupt on Async Advance bit in the USBSTS register see Section 2.3.2 for definition. To set this bit to a zero, system software must write a one to the Interrupt on Async Advance bit in the USBSTS register. 20 0b RO SMI on Host System Error (SMI_HOST_SYSTEM_ERROR): Shadow bit of Host System Error bit in the USBSTS register, see Section 2.3.2 for definition and effects of the events associated with this bit being set to a one. To set this bit to a zero, system software must write a one to the Host System Error bit in the USBSTS register. 19 0b RO SMI on Frame List Rollover (SMI_FRAME_LIST_ROLLOVER): Shadow bit of Frame List Rollover bit in the USBSTS register see Section 2.3.2 for definition. To set this bit to a zero, system software must write a one to the Frame List Rollover bit in the USBSTS register. 18 0b RO SMI on Port Change Detect (SMI_PORT_CHANGE_DETECT): Shadow bit of Port Change Detect bit in the USBSTS register see Section 2.3.2 for definition. To set this bit to a zero, system software must write a one to the Port Change Detect bit in the USBSTS register. 17 0b RO SMI on USB Error (SMI_USB_ERROR): Shadow bit of USB Error Interrupt (USBERRINT) bit in the USBSTS register see Section 2.3.2 for definition. To set this bit to a zero, system software must write a one to the USB Error Interrupt bit in the USBSTS register. 16 0b RO SMI on USB Complete (SMI_USB_COMPLETE): Shadow bit of USB Interrupt (USBINT) bit in the USBSTS register see Section 2.3.2 for definition. To set this bit to a zero, system software must write a one to the USB Interrupt bit in the USBSTS register. 15 0b RW SMI on BAR Enable (SMI_BAR_EN): When this bit is one and SMI on BAR is one, then the host controller will issue an SMI. 14 0b RW SMI on PCI Command Enable (SMI_PCI_CMD_EN): When this bit is one and SMI on PCI Command is one, then the host controller will issue an SMI. 13 0b RW SMI on OS Ownership Enable (SMI_OS_OWNR_CHANGE_EN): When this bit is a one AND the OS Ownership Change bit is one, the host controller will issue an SMI. 28: 22 Intel® Quark™ SoC X1000 Datasheet 470 August 2015 Document Number: 329676-005US USB 2.0—Intel® Quark™ SoC X1000 Bit Range Default & Access Description 12: 6 00h RO Reserved (RSVD): Reserved. 5 0b RW SMI on Async Advance Enable (SMI_ASYNC_ADVANCE_EN): When this bit is a one, and the SMI on Async Advance bit (above) in this register is a one, the host controller will issue an SMI immediately 4 0b RW SMI on Host System Error Enable (SMI_HOST_SYSTEM_ERROR_EN): When this bit is a one, and the SMI on Host System Error bit (above) in this register is a one, the host controller will issue an SMI immediately 3 0b RW SMI on Frame List Rollover Enable (SMI_FRAME_LIST_ROLLOVER_EN): When this bit is a one, and the SMI on Frame List Rollover bit (above) in this register is a one, the host controller will issue an SMI immediately. 2 0b RW SMI on Port Change Enable (SMI_PORT_CHANGE_DETECT_EN): When this bit is a one, and the SMI on Port Change Detect bit (above) in this register is a one, the host controller will issue an SMI immediately. 1 0b RW SMI on USB Error Enable (SMI_USB_ERROR_EN): When this bit is a one, and the SMI on USB Error bit (above) in this register is a one, the host controller will issue an SMI immediately. 0 0b RW USB SMI Enable (SMI_USB_COMPLETE_EN): When this bit is a one, and the SMI on USB Complete bit (above) in this register is a one, the host controller will issue an SMI immediately. 16.5.3 USB OHCI Table 105. Summary of PCI Configuration Registers—0/20/4 Offset Start Offset End Default Value Register ID—Description 0h 1h “Vendor ID (VENDOR_ID)—Offset 0h” on page 438 8086h 2h 3h “Device ID (DEVICE_ID)—Offset 2h” on page 439 093Ah 4h 5h “Command Register (COMMAND_REGISTER)—Offset 4h” on page 439 0000h 6h 7h “Status Register (STATUS)—Offset 6h” on page 440 0010h 8h Bh “Revision ID and Class Code (REV_ID_CLASS_CODE)—Offset 8h” on page 440 0C031010h Ch Ch “Cache Line Size (CACHE_LINE_SIZE)—Offset Ch” on page 441 00h Dh Dh “Latency Timer (LATENCY_TIMER)—Offset Dh” on page 441 00h Eh Eh “Header Type (HEADER_TYPE)—Offset Eh” on page 442 80h Fh Fh “BIST (BIST)—Offset Fh” on page 442 00h 10h 13h “Base Address Register (BAR0)—Offset 10h” on page 443 00000000h 28h 2Bh “Cardbus CIS Pointer (CARDBUS_CIS_POINTER)—Offset 28h” on page 443 00000000h 2Ch 2Dh “Subsystem Vendor ID (SUB_SYS_VENDOR_ID)—Offset 2Ch” on page 444 0000h 2Eh 2Fh “Subsystem ID (SUB_SYS_ID)—Offset 2Eh” on page 444 0000h 30h 33h “Expansion ROM Base Address (EXP_ROM_BASE_ADR)—Offset 30h” on page 444 00000000h 34h 37h “Capabilities Pointer (CAP_POINTER)—Offset 34h” on page 460 00000080h 3Ch 3Ch “Interrupt Line Register (INTR_LINE)—Offset 3Ch” on page 460 00h 3Dh 3Dh “Interrupt Pin Register (INTR_PIN)—Offset 3Dh” on page 461 00h 3Eh 3Eh “MIN_GNT (MIN_GNT)—Offset 3Eh” on page 461 00h 3Fh 3Fh “MAX_LAT (MAX_LAT)—Offset 3Fh” on page 462 00h 80h 80h “Capability ID (PM_CAP_ID)—Offset 80h” on page 463 01h August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 471 Intel® Quark™ SoC X1000—USB 2.0 Table 105. Offset Start Summary of PCI Configuration Registers—0/20/4 (Continued) Offset End Default Value Register ID—Description 81h 81h “Next Capability Pointer (PM_NXT_CAP_PTR)—Offset 81h” on page 463 A0h 82h 83h “Power Management Capabilities (PMC)—Offset 82h” on page 463 4803h 84h 85h “Power Management Control/Status Register (PMCSR)—Offset 84h” on page 464 0008h 86h “PM CSR PCI-to-PCI Bridge Support Extension (PMCSR_BSE)—Offset 86h” on page 465 00h 87h 87h “Power Management Data Register (DATA_REGISTER)—Offset 87h” on page 465 00h A0h A0h “Capability ID (MSI_CAP_ID)—Offset A0h” on page 465 05h A1h A1h “Next Capability Pointer (MSI_NXT_CAP_PTR)—Offset A1h” on page 466 00h A2h A3h “Message Control (MESSAGE_CTRL)—Offset A2h” on page 466 0100h A4h A7h “Message Address (MESSAGE_ADDR)—Offset A4h” on page 467 00000000h A8h A9h “Message Data (MESSAGE_DATA)—Offset A8h” on page 467 0000h ACh AFh “Mask Bits for MSI (PER_VEC_MASK)—Offset ACh” on page 485 00000000h B0h B3h “Pending Bits for MSI (PER_VEC_PEND)—Offset B0h” on page 468 00000000h 86h 16.5.3.1 Vendor ID (VENDOR_ID)—Offset 0h Access Method Type: PCI Configuration Register (Size: 16 bits) VENDOR_ID: [B:0, D:20, F:4] + 0h Default: 8086h 15 12 0 0 0 8 0 0 0 4 0 1 0 0 0 0 0 1 1 0 value 1 Bit Range Default & Access 8086h RO 15: 0 16.5.3.2 Description Vendor ID (value): PCI Vendor ID for Intel Device ID (DEVICE_ID)—Offset 2h Access Method Type: PCI Configuration Register (Size: 16 bits) DEVICE_ID: [B:0, D:20, F:4] + 2h Default: 093Ah 15 0 0 0 8 1 0 0 4 1 0 0 1 1 0 1 0 1 0 value 0 12 Intel® Quark™ SoC X1000 Datasheet 472 August 2015 Document Number: 329676-005US USB 2.0—Intel® Quark™ SoC X1000 Bit Range Default & Access 093Ah RO 15: 0 16.5.3.3 Description Device ID (value): PCI Device ID Command Register (COMMAND_REGISTER)—Offset 4h Access Method Type: PCI Configuration Register (Size: 16 bits) COMMAND_REGISTER: [B:0, D:20, F:4] + 4h Default: 0000h 16.5.3.4 0 0 0 0 0 0 0 0 0 RSVD 0 MEMen 0 0 MasEn 0 4 RSVD 0 SERREn 0 RSVD 0 8 RSVD0 0 12 IntrDis 15 Bit Range Default & Access 15: 11 0h RO RSVD0 (RSVD0): Reserved 10 0b RW Interrupt Disable (IntrDis): Interrupt disable. Disables generation of interrupt messages in the PCI Express function. 1 =) disabled, 0 =) not disabled 9 0h RO Reserved (RSVD): Reserved. 8 0b RW SERR Enable (SERREn): When set, this bit enables the non-fatal and fatal errors detected by the function to be reported to the root complex. 7: 3 00h RO Reserved (RSVD): Reserved. 2 0b RW Bus Master Enable (MasEn): 0=)disables upstream requests 1=)enables upstream requests. 1 0b RW Memory Space Enable (MEMen): Device support for Memory transactions. 0 =) not supported. 1 =) supported. 0 0h RO Reserved (RSVD): Reserved. Description Status Register (STATUS)—Offset 6h Access Method Type: PCI Configuration Register (Size: 16 bits) STATUS: [B:0, D:20, F:4] + 6h Default: 0010h August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 473 Intel® Quark™ SoC X1000—USB 2.0 Bit Range 16.5.3.5 Default & Access 0 1 0 0 0 0 RSVD1 0 IntrStatus 0 0 hasCapList 0 capable_66Mhz 0 RSVD 0 FastB2B 0 4 RSVD 0 DEVSEL 0 8 RSVD 0 RcdMasAb 0 SigSysErr 12 RSVD0 15 Description 15 0h RO RSVD0 (RSVD0): Reserved 14 0b RW Signaled System Error (SigSysErr): Set when a function detects a system error and the SERR Enable bit is set 13 0b RW Received master abort (RcdMasAb): Set when requester receives a completion with Unsupported Request completion status 12: 11 0h RO Reserved (RSVD): Reserved. 10: 9 0b RO DEVSEL Timing (DEVSEL): Deprecated: Hardwired to 0 8 0h RO Reserved (RSVD): Reserved. 7 0b RO Fast Back-to-Back Capable (FastB2B): Deprecated: Hardwired to 0 6 0h RO Reserved (RSVD): Reserved. 5 0b RO 66MHz-Capable (capable_66Mhz): Deprecated: Hardwired to 0 4 1h RO Capabilities List (hasCapList): Indicates the presence of one or more capability register sets. 3 0b RO Interrupt Status (IntrStatus): Indicates that the function has a legacy interrupt request outstanding. This bit has no meaning if Message Signaled Interrupts are being used 2: 0 0h RO RSVD1 (RSVD1): Reserved Revision ID and Class Code (REV_ID_CLASS_CODE)—Offset 8h Access Method Type: PCI Configuration Register (Size: 32 bits) REV_ID_CLASS_CODE: [B:0, D:20, F:4] + 8h Default: 0C031010h 0 Intel® Quark™ SoC X1000 Datasheet 474 24 1 1 0 0 20 0 0 0 0 16 0 0 1 1 12 0 0 0 1 8 0 0 0 0 4 0 0 0 1 0 0 0 0 0 rev_id 0 progIntf 28 0 classCode 0 subClassCode 31 August 2015 Document Number: 329676-005US USB 2.0—Intel® Quark™ SoC X1000 16.5.3.6 Bit Range Default & Access 31: 24 0Ch RO Class Code (classCode): Broadly classifies the type of function that the device performs. 23: 16 03h RO Sub-Class Code (subClassCode): Identifies more specifically (than the class_code byte) the function of the device. 15: 8 10h RO Programming Interface (progIntf): Used to define the register set variation within a particular sub-class. 7: 0 10h RO Revision ID (rev_id): Assigned by the function manufacturer and identifies the revision number of the function. Description Cache Line Size (CACHE_LINE_SIZE)—Offset Ch Access Method Type: PCI Configuration Register (Size: 8 bits) CACHE_LINE_SIZE: [B:0, D:20, F:4] + Ch Default: 00h 7 4 0 0 0 0 0 0 0 value 0 0 16.5.3.7 Bit Range Default & Access Description 7: 0 0h RW Cache Line Size (value): Implemented as a R/W register for legacy purposes but has no effect on device functionality. Latency Timer (LATENCY_TIMER)—Offset Dh Access Method Type: PCI Configuration Register (Size: 8 bits) LATENCY_TIMER: [B:0, D:20, F:4] + Dh Default: 00h 7 4 0 0 0 0 0 0 0 value 0 0 16.5.3.8 Bit Range Default & Access 7: 0 0h RO Description Latency Timer (value): Deprecated. Hardwire to 0. Header Type (HEADER_TYPE)—Offset Eh Access Method Type: PCI Configuration Register (Size: 8 bits) August 2015 Document Number: 329676-005US HEADER_TYPE: [B:0, D:20, F:4] + Eh Intel® Quark™ SoC X1000 Datasheet 475 Intel® Quark™ SoC X1000—USB 2.0 Default: 80h 7 4 0 0 0 multiFnDev Bit Range 16.5.3.9 0 0 0 0 0 cfgHdrFormat 1 Default & Access Description 7 1h RO Multi-Function Device (multiFnDev): Hard-wired to 1 to indicate that this is a multifunction device 6: 0 0h RO Configuration Header Format (cfgHdrFormat): Hard-wired to 0 to indicate that this configuration header is a Type 0 header, i.e. it is an endpoint rather than a bridge. BIST (BIST)—Offset Fh Access Method Type: PCI Configuration Register (Size: 8 bits) BIST: [B:0, D:20, F:4] + Fh Default: 00h 7 4 Bit Range 16.5.3.10 0 0 0 0 0 0 0 comp_code start_bist RSVD 0 BIST_capable 0 Default & Access Description 7 0h RO BIST_capable (BIST_capable): Hard-wired to 0. (Returns 1 if the function implements a BIST) 6 0h RO Start (start_bist): Set to start the functions BIST if BIST is supported. 5: 4 0h RO Reserved (RSVD): Reserved. 3: 0 0h RO Completion Code (comp_code): Completion code having run BIST if BIST is supported. 0=)success. non-zero=)failure Base Address Register (BAR0)—Offset 10h Access Method Type: PCI Configuration Register (Size: 32 bits) BAR0: [B:0, D:20, F:4] + 10h Default: 00000000h Intel® Quark™ SoC X1000 Datasheet 476 August 2015 Document Number: 329676-005US USB 2.0—Intel® Quark™ SoC X1000 0 0 0 0 0 0 0 0 0 0 0 0 12 0 0 0 0 8 0 0 0 0 16.5.3.11 4 0 0 0 0 0 0 0 0 0 isIO 0 16 memType 0 20 prefetchable 0 24 address 0 28 RSVD 31 Bit Range Default & Access Description 31: 12 0h RW address (address): Used to determine the size of memory required by the device and to assign a start address for this required amount of memory. 11: 4 00h RO Reserved (RSVD): Reserved. 3 0b RO Prefetchable (prefetchable): Defines the block of memory as prefetchable or not. A block of memory is prefetchable if it fulfils the following 3 conditions (1) no side effects on reads, (2) the device returns all bytes on reads regardless of the byte enables, and (3) host bridges can merge processor writes into this range without causing errors. Hardwired to 0 2: 1 00b RO Type (memType): Hardwired to 0 to indicate a 32-bit decoder 0 0b RO Memory Space Indicator (isIO): Hardwired to 0 to indicate the register is a memory address decoder Cardbus CIS Pointer (CARDBUS_CIS_POINTER)—Offset 28h Access Method Type: PCI Configuration Register (Size: 32 bits) CARDBUS_CIS_POINTER: [B:0, D:20, F:4] + 28h Default: 00000000h 31 0 0 0 24 0 0 0 0 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 0 4 0 0 0 0 0 0 0 0 0 value 0 28 Bit Range 31: 0 16.5.3.12 Default & Access 0h RO Description Cardbus CIS Pointer (value): Reserved. Hardwire to 0. Subsystem Vendor ID (SUB_SYS_VENDOR_ID)—Offset 2Ch Access Method Type: PCI Configuration Register (Size: 16 bits) SUB_SYS_VENDOR_ID: [B:0, D:20, F:4] + 2Ch Default: 0000h August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 477 Intel® Quark™ SoC X1000—USB 2.0 15 12 0 0 0 0 0 0 4 0 0 0 0 0 0 0 0 0 0 value 0 8 Bit Range Default & Access 0h RO 15: 0 16.5.3.13 Description Subsystem Vendor ID (value): PCI Subsystem Vendor ID Subsystem ID (SUB_SYS_ID)—Offset 2Eh Access Method Type: PCI Configuration Register (Size: 16 bits) SUB_SYS_ID: [B:0, D:20, F:4] + 2Eh Default: 0000h 15 12 0 0 0 0 0 0 4 0 0 0 0 0 0 0 0 0 0 value 0 8 Bit Range Default & Access 0h RO 15: 0 16.5.3.14 Description Subsystem ID (value): PCI Subsystem ID Expansion ROM Base Address (EXP_ROM_BASE_ADR)—Offset 30h Access Method Type: PCI Configuration Register (Size: 32 bits) EXP_ROM_BASE_ADR: [B:0, D:20, F:4] + 30h Default: 00000000h 0 0 0 24 0 0 0 0 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 0 4 0 0 RSVD ROM_base_addr 0 28 0 0 0 0 0 0 0 AddrDecodeEn 31 Bit Range Default & Access Description 31: 11 0h RW ROM Start Address (ROM_base_addr): Used to determine the size of memory required by the ROM and to assign a start address for this required amount of memory. 10: 1 000h RO 0 0h RW Intel® Quark™ SoC X1000 Datasheet 478 Reserved (RSVD): Reserved. Address Decode Enable (AddrDecodeEn): A 1 in this field enables the function's ROM address decoder assuming that the Memory Space bit in the Command Register is also set to 1 August 2015 Document Number: 329676-005US USB 2.0—Intel® Quark™ SoC X1000 16.5.3.15 Capabilities Pointer (CAP_POINTER)—Offset 34h Access Method Type: PCI Configuration Register (Size: 32 bits) CAP_POINTER: [B:0, D:20, F:4] + 34h Default: 00000080h 31 0 0 0 24 0 0 0 0 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 0 4 1 0 0 Bit Range 16.5.3.16 0 0 0 0 0 0 value RSVD0 0 28 Default & Access Description 31: 8 0h RO RSVD0 (RSVD0): Reserved 7: 0 80h RO Capabilities Pointer (value): Pointer to memory location of first entry of linked list of configuration register sets each of which supports a feature. Points to PM (power management) register set at location 0x80 Interrupt Line Register (INTR_LINE)—Offset 3Ch Access Method Type: PCI Configuration Register (Size: 8 bits) INTR_LINE: [B:0, D:20, F:4] + 3Ch Default: 00h 7 4 0 0 0 0 0 0 0 0 value 0 16.5.3.17 Bit Range Default & Access Description 7: 0 0h RW Interrupt Line Register (value): The value in this register tells which input of the system interrupt controller(s) the device's interrupt pin is connected to. The device itself does not use this value, rather it is used by device drivers and operating systems. Device drivers and operating systems can use this information to determine priority and vector information. Interrupt Pin Register (INTR_PIN)—Offset 3Dh Access Method Type: PCI Configuration Register (Size: 8 bits) INTR_PIN: [B:0, D:20, F:4] + 3Dh Default: 00h 7 0 0 0 0 0 0 0 0 value 0 4 August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 479 Intel® Quark™ SoC X1000—USB 2.0 Bit Range 7: 0 16.5.3.18 Default & Access Description 01h RO Interrupt Pin Register (value): The Interrupt Pin register tells which interrupt pin the device (or device function) uses. A value of 1 corresponds to INTA#. A value of 2 corresponds to INTB#. A value of 3 corresponds to INTC#. A value of 4 corresponds to INTD#. Devices (or device functions) that do not use an interrupt pin must put a 0 in this register. The values 05h through FFh are reserved. For this system function 0 is connected to INTA, 1 to INTB, 2 to INTC 3 to INTD, 4 to INTA, 5 to INTB etc. MIN_GNT (MIN_GNT)—Offset 3Eh Access Method Type: PCI Configuration Register (Size: 8 bits) MIN_GNT: [B:0, D:20, F:4] + 3Eh Default: 00h 7 4 0 0 0 0 0 0 0 0 0 value 0 0 16.5.3.19 Bit Range Default & Access 7: 0 0h RO Description MIN_GNT (value): Hardwired to 0 MAX_LAT (MAX_LAT)—Offset 3Fh Access Method Type: PCI Configuration Register (Size: 8 bits) MAX_LAT: [B:0, D:20, F:4] + 3Fh Default: 00h 7 4 0 0 0 0 0 0 value 0 16.5.3.20 Bit Range Default & Access 7: 0 0h RO Description MAX_LAT (value): Hardwired to 0 Capability ID (PM_CAP_ID)—Offset 80h Access Method Type: PCI Configuration Register (Size: 8 bits) PM_CAP_ID: [B:0, D:20, F:4] + 80h Default: 01h Intel® Quark™ SoC X1000 Datasheet 480 August 2015 Document Number: 329676-005US USB 2.0—Intel® Quark™ SoC X1000 7 4 0 0 0 0 0 0 1 value 0 0 16.5.3.21 Bit Range Default & Access 7: 0 01h RO Description Capability ID (value): Identifies the feature associated with this register set. Hardwired value as per PCI SIG assigned capability ID Next Capability Pointer (PM_NXT_CAP_PTR)—Offset 81h Access Method Type: PCI Configuration Register (Size: 8 bits) PM_NXT_CAP_PTR: [B:0, D:20, F:4] + 81h Default: A0h 7 4 0 1 0 0 0 0 0 value 1 0 16.5.3.22 Bit Range Default & Access 7: 0 a0h RO Description Next Capability Pointer (value): Pointer to the next register set of feature specific configuration registers. Hardwired to 0xA0 to point to the MSI Capability Structure Power Management Capabilities (PMC)—Offset 82h Access Method Type: PCI Configuration Register (Size: 16 bits) PMC: [B:0, D:20, F:4] + 82h Default: 4803h 0 0 0 0 0 0 0 1 1 version 0 0 PME_clock 0 RSVD 1 DSI 0 4 aux_curr 0 8 D1_support 1 PME_support 0 12 D2_support 15 Bit Range Default & Access Description 15: 11 09h RO PME Support (PME_support): PME_Support field Indicates the PM states within which the function is capable of sending a PME (Power Management Event) message. 0 in a bit =) PME is not supported in the corresponding PM state, where bit indexes 11,12,13,14,15 correspond to PM states D0, D1, D2, D3hot, D3cold respectively. 10 0h RO D2 Support (D2_support): Hardwired to 0 as the D2 state is not supported 9 0h RO D1 Support (D1_support): Hardwired to 0 as the D1 state is not supported August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 481 Intel® Quark™ SoC X1000—USB 2.0 16.5.3.23 Bit Range Default & Access 8: 6 0h RO Aux Current (aux_curr): Hardwired to 0 as the D3hot state is not supported 5 0h RO Device Specific Initialisation (DSI): Hardwired to 0 to indicate that the device does not require a device specific initialisation sequence following transition to the D0 uninitialised state 4 0h RO Reserved (RSVD): Reserved. 3 0h RO PME Clock (PME_clock): Deprecated. Hardwired to 0 2: 0 011b RO Description Version (version): This function complies with revision 1.2 of the PCI Power Management Interface Specification Power Management Control/Status Register (PMCSR)—Offset 84h Access Method Type: PCI Configuration Register (Size: 16 bits) PMCSR: [B:0, D:20, F:4] + 84h Default: 0008h 0 0 0 0 0 0 0 0 1 0 0 0 power_state 0 0 RSVD 0 4 Description 0h RW PME Status (PME_status): Set if function has experienced a PME (even if PME_en (bit 8 of PMCSR register) is not set). 14: 13 0h RO Data Scale (Data_scale): Hardwired to 0 as the data register is not supported 12: 9 0h RO Data Select (Data_select): Hardwired to 0 as the data register is not supported 8 0b RW PME Enable (PME_en): Enable device function to send PME messages when an event occurs. 1=)enabled. 0=)disabled 7: 4 0h RO Reserved (RSVD): Reserved. 3 1b RO No Soft Reset (no_soft_reset): Devices do perform an internal reset when transitioning from D3hot to D0 2 0h RO Reserved (RSVD): Reserved. 1: 0 00b RW Power State (power_state): Allows software to read current PM state or transition device to a new PM state, where 2'b00 = D0, 2'b01=D1, 2'b10=D2, 2'b11=D3hot 15 Intel® Quark™ SoC X1000 Datasheet 482 RSVD Default & Access PME_en Bit Range Data_select Data_scale 0 8 PME_status 0 12 no_soft_reset 15 August 2015 Document Number: 329676-005US USB 2.0—Intel® Quark™ SoC X1000 16.5.3.24 PM CSR PCI-to-PCI Bridge Support Extension (PMCSR_BSE)—Offset 86h Access Method Type: PCI Configuration Register (Size: 8 bits) PMCSR_BSE: [B:0, D:20, F:4] + 86h Default: 00h 7 4 0 0 0 0 0 0 0 0 value 0 16.5.3.25 Bit Range Default & Access 7: 0 0h RO Description PM CSR PCI-to-PCI Bridge Support Extension (value): Not Supported. Hardwired to 0. Power Management Data Register (DATA_REGISTER)—Offset 87h Access Method Type: PCI Configuration Register (Size: 8 bits) DATA_REGISTER: [B:0, D:20, F:4] + 87h Default: 00h 7 4 0 0 0 0 0 0 0 value 0 0 16.5.3.26 Bit Range Default & Access 7: 0 0h RO Description Power Management Data Register (value): Not Supported. Hardwired to 0 Capability ID (MSI_CAP_ID)—Offset A0h Access Method Type: PCI Configuration Register (Size: 8 bits) MSI_CAP_ID: [B:0, D:20, F:4] + A0h Default: 05h 7 4 0 0 0 0 1 0 1 value 0 0 Bit Range Default & Access 7: 0 05h RO August 2015 Document Number: 329676-005US Description Capability ID (value): Identifies the feature associated with this register set. Hardwired value as per PCI SIG assigned capability ID Intel® Quark™ SoC X1000 Datasheet 483 Intel® Quark™ SoC X1000—USB 2.0 16.5.3.27 Next Capability Pointer (MSI_NXT_CAP_PTR)—Offset A1h Access Method Type: PCI Configuration Register (Size: 8 bits) MSI_NXT_CAP_PTR: [B:0, D:20, F:4] + A1h Default: 00h 7 4 0 0 0 0 0 0 0 value 0 0 16.5.3.28 Bit Range Default & Access Description 7: 0 00h RO Next Capability Pointer (value): Hardwired to 0 as this is the last capability structure in the chain Message Control (MESSAGE_CTRL)—Offset A2h Access Method Type: PCI Configuration Register (Size: 16 bits) MESSAGE_CTRL: [B:0, D:20, F:4] + A2h Default: 0100h Bit Range 16.5.3.29 0 0 4 1 0 Default & Access 0 0 0 0 0 0 0 0 MSIEnable 8 0 multiMsgCap 0 multiMsgEn 0 bit64Cap 12 0 RSVD0 0 perVecMskCap 15 Description 15: 9 0h RO RSVD0 (RSVD0): Reserved 8 1h RO Per Vector Masking Capable (perVecMskCap): Hardwired to 1 to indicate the function supports PVM 7 0h RO 64 bit Address Capabale (bit64Cap): This bit is hardwired to 0 to indicate that the function is not capable of sending a 64-bit message address. 6: 4 0h RW Multi-Message Enable (multiMsgEn): As only one vector is supported per function, software should only write a value of 0x0 to this field 3: 1 0h RO Multiple Message Enable (multiMsgCap): This field is hardwired to 0x0 to indicate that the function is requesting a single vector 0 0h RW MSI Enable (MSIEnable): Set to enable MSI to request service. If set then it's prohibited to use the INTx pin. System configuration software sets this bit to enable MSI. Message Address (MESSAGE_ADDR)—Offset A4h Access Method Intel® Quark™ SoC X1000 Datasheet 484 August 2015 Document Number: 329676-005US USB 2.0—Intel® Quark™ SoC X1000 Type: PCI Configuration Register (Size: 32 bits) MESSAGE_ADDR: [B:0, D:20, F:4] + A4h Default: 00000000h 28 0 0 0 0 0 0 0 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 0 4 0 0 0 0 0 0 0 address 0 24 Bit Range 16.5.3.30 0 0 RSVD0 31 Default & Access Description 31: 2 0h RW Message Address (address): If the Message Enable bit (bit 0 of the Message Control register) is set, the contents of this register specify the DWORD-aligned address (AD[31:2]) for the MSI memory write transaction. AD[1:0] are driven to zero during the address phase. This field is read/write 1: 0 0h RO RSVD0 (RSVD0): Reserved Message Data (MESSAGE_DATA)—Offset A8h Access Method Type: PCI Configuration Register (Size: 16 bits) MESSAGE_DATA: [B:0, D:20, F:4] + A8h Default: 0000h 15 12 0 0 0 0 0 0 4 0 0 0 0 0 0 0 0 0 0 MsgData 0 8 Bit Range Default & Access Description 0h RW Data Field (MsgData): System-specified message data. If the Message Enable bit (bit 0 of the Message Control register) is set, the message data is driven onto the lower word (AD[15:0]) of the memory write transactions data phase. AD[31:16] are driven to zero during the memory write transactions data phase. C/BE[3::0]# are asserted during the data phase of the memory write transaction. None of the message bits will be changed by hardware 15: 0 16.5.3.31 Mask Bits for MSI (PER_VEC_MASK)—Offset ACh Access Method Type: PCI Configuration Register (Size: 32 bits) PER_VEC_MASK: [B:0, D:20, F:4] + ACh Default: 00000000h 0 0 0 24 0 0 0 0 20 0 0 0 0 16 0 0 0 0 RSVD0 0 28 August 2015 Document Number: 329676-005US 12 0 0 0 0 8 0 0 0 0 4 0 0 0 0 0 0 0 0 0 MSIMask 31 Intel® Quark™ SoC X1000 Datasheet 485 Intel® Quark™ SoC X1000—USB 2.0 Bit Range 16.5.3.32 Default & Access Description 31: 1 0h RO RSVD0 (RSVD0): Reserved 0 0h RW Vector 0 Mask (MSIMask): Mask Bit for Vector 0. If this bit is set, the function will not send MSI messages Pending Bits for MSI (PER_VEC_PEND)—Offset B0h Access Method Type: PCI Configuration Register (Size: 32 bits) PER_VEC_PEND: [B:0, D:20, F:4] + B0h Default: 00000000h 0 0 0 24 0 0 0 0 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 0 4 0 0 0 0 0 0 0 0 RSVD0 0 28 Bit Range Default & Access Description 31: 1 0h RO RSVD0 (RSVD0): Reserved 0 0h RO Vector 0 Pending (value): Pending Bit for Vector 0. 16.6 Memory Mapped Registers 16.6.1 USB Device Table 106. Summary of Memory Mapped I/O Registers—BAR0 Offset Start Offset End Default Value Register Name (Register Symbol) 0h 3h “IN Endpoint 0 Control Register (ep0_in_ctrl_udc_reg)—Offset 0h” on page 489 00000000h 4h 7h “IN Endpoint 0 Status Register (ep0_in_sts_udc_reg)—Offset 4h” on page 490 00000000h 8h Bh “IN Endpoint 0 Buffer Size Register (ep0_in_bufsize_udc_reg)—Offset 8h” on page 492 00000000h Ch Fh “IN Endpoint 0 Maximum Packet Size Register (ep0_in_mpkt_sz_reg)—Offset Ch” on page 493 14h 17h “IN Endpoint 0 Data Descriptor Pointer Register (ep0_in_desptr_udc_reg)—Offset 14h” 00000000h on page 493 1Ch 1Fh “IN Endpoint 0 Write Confirmation register (for Slave-Only mode) (ep0_wr_cfrm_udc_reg)—Offset 1Ch” on page 494 00000000h 20h 23h “IN Endpoint 1 Control Register (ep1_in_ctrl_udc_reg)—Offset 20h” on page 494 00000000h 24h 27h “IN Endpoint 1 Status Register (ep1_in_sts_udc_reg)—Offset 24h” on page 495 00000000h 2Bh “IN Endpoint 1 Buffer Size Register (ep1_in_bufsize_udc_reg)—Offset 28h” on page 497 00000000h 28h Intel® Quark™ SoC X1000 Datasheet 486 0 value 31 00000000h August 2015 Document Number: 329676-005US USB 2.0—Intel® Quark™ SoC X1000 Table 106. Offset Start Summary of Memory Mapped I/O Registers—BAR0 (Continued) Offset End Default Value Register Name (Register Symbol) 2Ch 2Fh “IN Endpoint 1 Maximum Packet Size Register (ep1_in_mpkt_sz_reg)—Offset 2Ch” on page 498 34h 37h “IN Endpoint 1 Data Descriptor Pointer Register (ep1_in_desptr_udc_reg)—Offset 34h” 00000000h on page 498 3Ch 3Fh “IN Endpoint 1 Write Confirmation register (for Slave-Only mode) (ep1_wr_cfrm_udc_reg)—Offset 3Ch” on page 499 00000000h 40h 43h “IN Endpoint 2 Control Register (ep2_in_ctrl_udc_reg)—Offset 40h” on page 499 00000000h 44h 47h “IN Endpoint 2 Status Register (ep2_in_sts_udc_reg)—Offset 44h” on page 500 00000000h 48h 4Bh “IN Endpoint 2 Buffer Size Register (ep2_in_bufsize_udc_reg)—Offset 48h” on page 502 00000000h 4Ch 4Fh “IN Endpoint 2 Maximum Packet Size Register (ep2_in_mpkt_sz_reg)—Offset 4Ch” on page 503 00000000h 54h 57h “IN Endpoint 2 Data Descriptor Pointer Register (ep2_in_desptr_udc_reg)—Offset 54h” 00000000h on page 503 5Ch 5Fh “IN Endpoint 2 Write Confirmation register (for Slave-Only mode) (ep2_wr_cfrm_udc_reg)—Offset 5Ch” on page 504 00000000h 60h 63h “IN Endpoint 3 Control Register (ep3_in_ctrl_udc_reg)—Offset 60h” on page 504 00000000h 64h 67h “IN Endpoint 3 Status Register (ep3_in_sts_udc_reg)—Offset 64h” on page 505 00000000h 68h 6Bh “IN Endpoint 3 Buffer Size Register (ep3_in_bufsize_udc_reg)—Offset 68h” on page 507 00000000h 6Ch 6Fh “IN Endpoint 3 Maximum Packet Size Register (ep3_in_mpkt_sz_reg)—Offset 6Ch” on page 508 00000000h 74h 77h “IN Endpoint 3 Data Descriptor Pointer Register (ep3_in_desptr_udc_reg)—Offset 74h” 00000000h on page 508 7Ch 7Fh “IN Endpoint 3 Write Confirmation register (for Slave-Only mode) (ep3_wr_cfrm_udc_reg)—Offset 7Ch” on page 509 00000000h 200h 203h “OUT Endpoint 0 Control Register (ep0_out_ctrl_udc_reg)—Offset 200h” on page 509 00000000h 204h 207h “OUT Endpoint 0 Status Register (ep0_out_sts_udc_reg)—Offset 204h” on page 510 00000100h 208h 20Bh “OUT Endpoint 0 Receive Packet Frame Number Register (ep0_out_rpf_udc_reg)— Offset 208h” on page 512 00000000h 20Ch 20Fh “OUT Endpoint 0 Buffer Size Register (ep0_out_bufsize_udc_reg)—Offset 20Ch” on page 513 00000000h 210h 213h “OUT Endpoint 0 SETUP Buffer Pointer Register (ep0_subptr_udc_reg)—Offset 210h” on 00000000h page 513 214h 217h “OUT Endpoint 0 Data Descriptor Pointer Register (ep0_out_desptr_udc_reg)—Offset 214h” on page 514 00000000h 21Ch 21Fh “OUT Endpoint 0 Read Confirmation Register for zero-length OUT data (for Slave-Only mode) (ep0_rd_cfrm_udc_reg)—Offset 21Ch” on page 514 00000000h 220h 223h “OUT Endpoint 1 Control Register (ep1_out_ctrl_udc_reg)—Offset 220h” on page 515 00000000h 224h 227h “OUT Endpoint 1 Status Register (ep1_out_sts_udc_reg)—Offset 224h” on page 516 00000100h 228h 22Bh “OUT Endpoint 1 Receive Packet Frame Number Register (ep1_out_rpf_udc_reg)— Offset 228h” on page 518 00000000h 22Ch 22Fh “OUT Endpoint 1 Buffer Size Register (ep1_out_bufsize_udc_reg)—Offset 22Ch” on page 519 00000000h 230h 233h “OUT Endpoint 1 SETUP Buffer Pointer Register (ep1_subptr_udc_reg)—Offset 230h” on 00000000h page 519 234h 237h “OUT Endpoint 1 Data Descriptor Pointer Register (ep1_out_desptr_udc_reg)—Offset 234h” on page 520 August 2015 Document Number: 329676-005US 00000000h 00000000h Intel® Quark™ SoC X1000 Datasheet 487 Intel® Quark™ SoC X1000—USB 2.0 Table 106. Offset Start Summary of Memory Mapped I/O Registers—BAR0 (Continued) Offset End Default Value Register Name (Register Symbol) 23Ch 23Fh “OUT Endpoint 1 Read Confirmation Register for zero-length OUT data (for Slave-Only mode) (ep1_rd_cfrm_udc_reg)—Offset 23Ch” on page 520 00000000h 240h 243h “OUT Endpoint 2 Control Register (ep2_out_ctrl_udc_reg)—Offset 240h” on page 521 00000000h 244h 247h “OUT Endpoint 2 Status Register (ep2_out_sts_udc_reg)—Offset 244h” on page 522 00000100h 248h 24Bh “OUT Endpoint 2 Receive Packet Frame Number Register (ep2_out_rpf_udc_reg)— Offset 248h” on page 524 00000000h 24Ch 24Fh “OUT Endpoint 2 Buffer Size Register (ep2_out_bufsize_udc_reg)—Offset 24Ch” on page 525 00000000h 250h 253h “OUT Endpoint 2 SETUP Buffer Pointer Register (ep2_subptr_udc_reg)—Offset 250h” on 00000000h page 525 254h 257h “OUT Endpoint 2 Data Descriptor Pointer Register (ep2_out_desptr_udc_reg)—Offset 254h” on page 526 00000000h 25Ch 25Fh “OUT Endpoint 2 Read Confirmation Register for zero-length OUT data (for Slave-Only mode) (ep2_rd_cfrm_udc_reg)—Offset 25Ch” on page 526 00000000h 260h 263h “OUT Endpoint 3 Control Register (ep3_out_ctrl_udc_reg)—Offset 260h” on page 527 00000000h 264h 267h “OUT Endpoint 3 Status Register (ep3_out_sts_udc_reg)—Offset 264h” on page 528 00000100h 268h 26Bh “OUT Endpoint 3 Receive Packet Frame Number Register (ep3_out_rpf_udc_reg)— Offset 268h” on page 530 00000000h 26Ch 26Fh “OUT Endpoint 3 Buffer Size Register (ep3_out_bufsize_udc_reg)—Offset 26Ch” on page 531 00000000h 270h 273h “OUT Endpoint 3 SETUP Buffer Pointer Register (ep3_subptr_udc_reg)—Offset 270h” on 00000000h page 531 274h 277h “OUT Endpoint 3 Data Descriptor Pointer Register (ep3_out_desptr_udc_reg)—Offset 274h” on page 532 00000000h 27Ch 27Fh “OUT Endpoint 3 Read Confirmation Register for zero-length OUT data (for Slave-Only mode) (ep3_rd_cfrm_udc_reg)—Offset 27Ch” on page 532 00000000h 400h 403h “Device Configuration Register (d_cfg_udc_reg)—Offset 400h” on page 533 00000020h 404h 407h “Device Control Register (d_ctrl_udc_reg)—Offset 404h” on page 534 00000400h 408h 40Bh “Device Status Register (d_sts_udc_reg)—Offset 408h” on page 536 00000000h 40Ch 40Fh “Device Interrupt Register (d_intr_udc_reg)—Offset 40Ch” on page 537 00000000h 410h 413h “Device Interrupt Mask Register (d_intr_msk_udc_reg)—Offset 410h” on page 538 00000000h 414h 417h “Endpoints Interrupt Register (ep_intr_udc_reg)—Offset 414h” on page 539 00000000h 418h 41Bh “Endpoints Interrupt Mask Register (ep_intr_msk_udc_reg)—Offset 418h” on page 539 00000000h 41Ch 41Fh “Test Mode Register (test_mode_udc_reg)—Offset 41Ch” on page 540 00000000h 420h 423h “Product Release Number Register (revision_udc_reg)—Offset 420h” on page 541 3234352Ah 500h 503h “SETUP command address pointer register (udc_desc_addr_udc_reg)—Offset 500h” on 00000000h page 541 504h 507h “Physical Endpoint 0 Register (udc_ep_ne_udc_reg_0)—Offset 504h” on page 542 508h 50Bh “Physical Endpoint 1 Register (udc_ep_ne_udc_reg_1)—Offset 508h” on page 542 00000000h 50Ch 50Fh “Physical Endpoint 2 Register (udc_ep_ne_udc_reg_2)—Offset 50Ch” on page 543 00000000h 510h 513h “Physical Endpoint 3 Register (udc_ep_ne_udc_reg_3)—Offset 510h” on page 544 00000000h 514h 517h “Physical Endpoint 4 Register (udc_ep_ne_udc_reg_4)—Offset 514h” on page 545 00000000h 518h 51Bh “Physical Endpoint 5 Register (udc_ep_ne_udc_reg_5)—Offset 518h” on page 546 00000000h 51Ch 51Fh “Physical Endpoint 6 Register (udc_ep_ne_udc_reg_6)—Offset 51Ch” on page 546 00000000h Intel® Quark™ SoC X1000 Datasheet 488 00000000h August 2015 Document Number: 329676-005US USB 2.0—Intel® Quark™ SoC X1000 Table 106. Offset Start Summary of Memory Mapped I/O Registers—BAR0 (Continued) Offset End Default Value Register Name (Register Symbol) 800h + [0803h 511]*4h “RxFIFO Array[0-511] (udc_rx_fifo_reg_array[0-511])—Offset 800h, Count 512, Stride 00000000h 4h” on page 547 1000h + 1003h [0-255]*4h “TxFIFO 0 Array[0-255] (udc_tx_fifo_reg_0_array[0-255])—Offset 1000h, Count 256, Stride 4h” on page 548 00000000h 1400h + 1403h [0-255]*4h “TxFIFO 1 Array[0-255] (udc_tx_fifo_reg_1_array[0-255])—Offset 1400h, Count 256, Stride 4h” on page 548 00000000h 1800h + 1803h [0-255]*4h “TxFIFO 2 Array[0-255] (udc_tx_fifo_reg_2_array[0-255])—Offset 1800h, Count 256, Stride 4h” on page 548 00000000h 1C00h + 1C03h [0-255]*4h “TxFIFO 3 Array[0-255] (udc_tx_fifo_reg_3_array[0-255])—Offset 1C00h, Count 256, Stride 4h” on page 549 00000000h 16.6.1.1 IN Endpoint 0 Control Register (ep0_in_ctrl_udc_reg)—Offset 0h This register is used to program the endpoint as required by the application. Access Method Type: Memory Mapped I/O Register (Size: 32 bits) Offset: [BAR0] + 0h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:2] + 10h Default: 00000000h Bit Range Default & Access 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 s 0 f 0 p 0 0 sn 0 et 0 nak 0 4 snak 0 8 rrdy 0 12 cnak 0 16 null_bit 0 20 mrx_flush 0 24 reserved 0 28 close_desc 31 Field Name (ID): Description 31:13 0x0 RO reserved: Reserved bits. These bits are reserved and should be set to zero. 12 0x0 RO Receive FIFO Flush for Multiple Receive FIFO (mrx_flush): This is an OUT endpoint field only. These bits are reserved and should be set to zero. 11 0x0 RO Close Descriptor Channel (close_desc): Close Descriptor Enhancement is not supported. These bits are reserved and should be set to zero. 10 0x0 RW Send Null Packet (null_bit): This bit provides the application with a mechanism to instruct the USB Device Controller to send a NULL (zero length) packet when no data is available in the particular endpoint TxFIFO. If this bit is set, when no data is available in the endpoint TxFIFO, the USB Device Controller sends a NULL packet. 9 0x0 RO Receive Ready (rrdy): This is an OUT endpoint field only. These bits are reserved and should be set to zero. August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 489 Intel® Quark™ SoC X1000—USB 2.0 Bit Range Default & Access Field Name (ID): Description 8 0x0 WO Clear NAK (cnak): Used by the application to clear the NAK bit (bit 6). After the subsystem sets bit 6 (NAK), the application must clear it with a write of 1 to the CNAK bit. (For example, after the application has decoded the SETUP packet and determined it is not an invalid command, the application must set the CNAK bit of the control endpoint to 1 to clear the NAK bit.)The application also must clear the NAK bit whenever the subsystem sets it. (The subsystem sets it due to the application setting the Stall bit.)The application can clear this bit only when the RxFIFO is empty (for single RxFIFO implementation) or when the RxFIFO corresponding to the same logical endpoint is empty (Multiple RxFIFO implementation). The application can write CNAK any time without waiting for a RxFIFO empty condition. The NAK bit is cleared immediately upon write to CNAK bit. No polling is necessary. 7 0x0 WO Set NAK (snak): Used by the application to set the NAK bit (bit 6 of this register). The application must not set the NAK bit for an IN endpoint until it has received an IN token interrupt indicating that the TxFIFO is empty. 6 0x0 RO NAK Bit (nak): After a SETUP packet, which is decoded by the application, is received by the core, the core sets the NAK bit for all control IN/OUT endpoints. NAK is also set after a STALL response for the endpoint (the STALL bit is set in Endpoint Control register bit 0). 1: The endpoint responds to the USB host with a NAK handshake. 0: The endpoint responds normally. Note 1: A SETUP packet is sent to the application regardless of whether the NAK bit is set. Note 2: A NAK set on ISOC OUT endpoint rejects the ISOC out data packet. 5:4 0x0 RW Endpoint Type (et): The possible options are: 00: Control endpoint 01: Isochronous endpoint 10: Bulk endpoint 11: Interrupt endpoint 3 0x0 RW Poll Demand (p): Poll demand from the application. The application can set this bit after an IN token is received from the endpoint. The application can also set this bit before an IN token is received for the endpoint, if it has the IN transfer data in advance. Note: After sending a zero-length or short packet, the application must wait for the next XFERDONE_TXEMPTY interrupt, before setting up the P bit for the next transfer. 2 0x0 RO Snoop Mode (sn): This is an OUT endpoint field only. These bits are reserved and should be set to zero. 1 0x0 RW Flush TxFIFO (f): The application firmware sets this bit to 1 after it has detected a disconnect/connect on the USB cable, then waits for the IN token endpoint interrupt before resetting this bit to 0. This flushes the stale data out of the TxFIFO. This bit is cleared by the core when TDC (Transmit DMA Complete) occurs on this endpoint. 0x0 RW Stall Handshake (s): On successful reception of a SETUP packet (decoded by the application), the subsystem clears both IN and OUT Stall bits, and sets both the IN and OUT NAK bits. The application must check for RxFIFO emptiness before setting the IN and OUT STALL bit. For non-SETUP packets, the subsystem clears either IN or out STALL bits only if a STALL handshake is returned to the USB host, then sets the corresponding NAK bit. The subsystem returns a STALL handshake for the subsequent transactions of the stalled endpoint until the USB host issues a Clear_Feature command to clear it. Once this bit is set, if the subsystem has already returned a STALL handshake to the USB host, the application firmware cannot clear the S bit to stop the subsystem from sending the STALL handshake on the endpoint. The host must instead send one of the following commands to clear the endpoint Halt status: - Clear Feature (Halt) - SetConfiguration - SetInterface. 0 16.6.1.2 IN Endpoint 0 Status Register (ep0_in_sts_udc_reg)—Offset 4h The Endpoint Status register indicates the endpoint status. Access Method Intel® Quark™ SoC X1000 Datasheet 490 August 2015 Document Number: 329676-005US USB 2.0—Intel® Quark™ SoC X1000 Type: Memory Mapped I/O Register (Size: 32 bits) Offset: [BAR0] + 4h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:2] + 10h Default: 00000000h Default & Access 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 reserved_3 0 out_tok tx_fifo_empty isoc_xfer_done Bit Range 0 bna 0 in_tok 0 4 he 0 8 mrxfifo_empty 0 12 tdc 0 16 rx_pkt_size 0 clr_feature_halt 20 set_feature_halt 0 24 cdc 0 reserved_1 0 28 xfer_done_txf_empty 31 Field Name (ID): Description 31:29 0x0 RO reserved_1: Reserved bits. These bits are reserved and should be set to zero. 28 0x0 RO Close Descriptor Channel (cdc): Close Descriptor Enhancement is not supported. These bits are reserved and should be set to zero. 27 0x0 RW/1C Transfer Done/Transmit FIFO Empty (xfer_done_txf_empty): This bit indicates that the TXFIFO is empty after the DMA transfer has been completed. The application can use this bit to set the poll bit for the next transfer. The application must first clear this bit after servicing the interrupt. 26 0x0 RW/1C Received Set Halt (set_feature_halt): This bit indicates that the Set Feature (EP HALT) command is received for this endpoint. To stall this endpoint, the application can set the S bit in Endpoint Control Register. After this, the application clears this RSS bit to acknowledge the reception of Set Feature stall command. Once this RSS bit is cleared, core sends the zero-length packet for the Status IN phase of Set Feature command. Received Set Stall indication is applicable only for Bulk and Interrupt transactions. 25 0x0 RW/1C Received Clear Halt (clr_feature_halt): This bit indicates that the Clear Feature (EP HALT) command is received for this endpoint. To continue to stall the endpoint, the application must set the S bit Endpoint Control Register. After this, the application clears this RCS bit to acknowledge the reception of clear stall command. Once this bit is cleared, core sends the zero-length packet for the Status IN phase of clear stall command. Received Clear Stall indication is applicable only for Bulk and Interrupt transactions. 24 0x0 RW/1C Transmit FIFO Empty detected (tx_fifo_empty): This bit indicates that the Transmit FIFO Empty condition is triggered. Application can use this information to load the subsequent data into the Transmit FIFO. The application must clear this bit after writing the data into the Transmit FIFO. Note: This bit is not used for Isochronous endpoints. 23 0x0 RW/1C Isochronous IN transaction complete (isoc_xfer_done): This bit indicates that the isochronous IN transaction for this endpoint is complete. The application can use this information to program the isochronous IN data for the next microframe. This bit is used only in Slave-Only mode. 0x0 RO Receive Packet Size (rx_pkt_size): This is an OUT endpoint field only. These bits are reserved and should be set to zero. 22:11 10 0x0 RW/1C Transmit DMA Completion (tdc): Indicates the transmit DMA has completed transferring a descriptor chain data to the Tx FIFO. After servicing the interrupt, the application must clear this bit. 9 0x0 RW/1C Error response on the host bus (he): Error response on the host bus (AHB) when doing a data transfer, descriptor fetch, or descriptor update for this particular endpoint. After servicing the interrupt, the application must clear this bit. 8 0x0 RO August 2015 Document Number: 329676-005US Receive Address FIFO Empty Status (mrxfifo_empty): This is an OUT endpoint field only. These bits are reserved and should be set to zero. Intel® Quark™ SoC X1000 Datasheet 491 Intel® Quark™ SoC X1000—USB 2.0 Bit Range 16.6.1.3 Default & Access Field Name (ID): Description 7 0x0 RW/1C Buffer Not Available (bna): The subsystem sets this bit when the descriptor status is either Host Busy or DMA Done to indicate that the descriptor was not ready at the time the DMA tried to access it. After servicing the interrupt, the application must clear this bit. 6 0x0 RW/1C IN token (in_tok): An IN token has been received by this endpoint. After servicing the interrupt, application must clear this bit. 5:4 0x0 RO OUT token (out_tok): This is an OUT endpoint field only. These bits are reserved and should be set to zero. 3:0 0x0 RO reserved_3: Reserved bits. These bits are reserved and should be set to zero. IN Endpoint 0 Buffer Size Register (ep0_in_bufsize_udc_reg)—Offset 8h Access Method Type: Memory Mapped I/O Register (Size: 32 bits) Offset: [BAR0] + 8h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:2] + 10h Default: 00000000h 0 24 0 0 0 0 Bit Range Default & Access 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 0 4 0 0 0 0 0 0 0 0 0 buff_size_1 0 buff_size_frame_number 28 0 reserved 0 isoc_data_pid 31 Field Name (ID): Description 0x0 RO reserved: Reserved bits. These bits are reserved and should be set to zero. 17:16 0x0 RW Isochronous IN Transaction PID (isoc_data_pid): Initial data PID to be sent for a high-bandwidth isochronous IN transaction. This field is used only in Slave-Only mode. 00: DATA0 PID is sent 01: DATA0 PID is sent 10: DATA1 PID is sent 11: DATA2 PID is sent 15:10 0x0 RO Buffer Size (buff_size_frame_number): These bits are reserved and should be set to zero. 9:0 0x0 RW Buffer Size (buff_size_1): Buffer size required for this endpoint. The application can program this field to make each endpoints buffers adaptive, providing flexibility in buffer size when the interface or configuration is changed. This value is in 32-bit words, and indicates the number of 32-bit word entries in the Transmit FIFO. NOTE: the maximum size of the TxFIFO is 1024 32-bit word entries. 31:18 Intel® Quark™ SoC X1000 Datasheet 492 August 2015 Document Number: 329676-005US USB 2.0—Intel® Quark™ SoC X1000 16.6.1.4 IN Endpoint 0 Maximum Packet Size Register (ep0_in_mpkt_sz_reg)— Offset Ch This register also specifies the maximum packet size an endpoint should support. This maximum size is used to calculate whether the Receive FIFO has sufficient space to accept a packet. When changing the maximum packet size for a specific endpoint, the user must also program the USB Device Controller register space. Access Method Type: Memory Mapped I/O Register (Size: 32 bits) Offset: [BAR0] + Ch BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:2] + 10h Default: 00000000h 31 0 0 0 24 0 0 0 0 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 Bit Range 16.6.1.5 0 4 0 0 0 0 0 0 0 0 0 mpkt_size buff_size 0 28 Default & Access Field Name (ID): Description 31:16 0x0 RO Buffer Size (buff_size): This is an OUT endpoint field only. These bits are reserved and should be set to zero. 15:0 0x0 RO Max Packet Size (mpkt_size): Maximum packet size for the endpoint in bytes. This maximum size is used to calculate whether the Receive FIFO has sufficient space to accept a packet. When changing the maximum packet size for a specific endpoint, the user must also program the corresponding Physical Endpoint Register. IN Endpoint 0 Data Descriptor Pointer Register (ep0_in_desptr_udc_reg)—Offset 14h Access Method Type: Memory Mapped I/O Register (Size: 32 bits) Offset: [BAR0] + 14h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:2] + 10h Default: 00000000h 31 0 0 0 24 0 0 0 0 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 0 4 0 0 0 0 0 0 0 0 0 desptr 0 28 Bit Range 31:0 Default & Access 0x0 RW August 2015 Document Number: 329676-005US Field Name (ID): Description Descriptor Pointer (desptr): This register contains the data descriptor pointers. Intel® Quark™ SoC X1000 Datasheet 493 Intel® Quark™ SoC X1000—USB 2.0 16.6.1.6 IN Endpoint 0 Write Confirmation register (for Slave-Only mode) (ep0_wr_cfrm_udc_reg)—Offset 1Ch Access Method Type: Memory Mapped I/O Register (Size: 32 bits) Offset: [BAR0] + 1Ch BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:2] + 10h Default: 00000000h 31 28 0 0 0 24 0 0 0 0 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 0 4 0 0 0 0 0 0 0 0 0 wr_cfrm 0 Bit Range Default & Access 0x0 WO 31:0 16.6.1.7 Field Name (ID): Description Write Confirmation (for Slave-Only mode) (wr_cfrm): Writing to this register confirms the IN data into the TxFIFO. IN Endpoint 1 Control Register (ep1_in_ctrl_udc_reg)—Offset 20h This register is used to program the endpoint as required by the application. Access Method Type: Memory Mapped I/O Register (Size: 32 bits) Offset: [BAR0] + 20h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:2] + 10h Default: 00000000h Bit Range Default & Access 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 f 0 s 0 p 0 0 sn 0 et 0 nak 0 4 snak 0 8 rrdy 0 12 cnak 0 16 null_bit 0 20 mrx_flush 0 24 reserved 0 28 close_desc 31 Field Name (ID): Description 31:13 0x0 RO reserved: Reserved bits. These bits are reserved and should be set to zero. 12 0x0 RO Receive FIFO Flush for Multiple Receive FIFO (mrx_flush): This is an OUT endpoint field only. These bits are reserved and should be set to zero. 11 0x0 RO Close Descriptor Channel (close_desc): Close Descriptor Enhancement is not supported. These bits are reserved and should be set to zero. 10 0x0 RW Send Null Packet (null_bit): This bit provides the application with a mechanism to instruct the USB Device Controller to send a NULL (zero length) packet when no data is available in the particular endpoint TxFIFO. If this bit is set, when no data is available in the endpoint TxFIFO, the USB Device Controller sends a NULL packet. 9 0x0 RO Receive Ready (rrdy): This is an OUT endpoint field only. These bits are reserved and should be set to zero. Intel® Quark™ SoC X1000 Datasheet 494 August 2015 Document Number: 329676-005US USB 2.0—Intel® Quark™ SoC X1000 Bit Range Default & Access Field Name (ID): Description 8 0x0 WO Clear NAK (cnak): Used by the application to clear the NAK bit (bit 6). After the subsystem sets bit 6 (NAK), the application must clear it with a write of 1 to the CNAK bit. (For example, after the application has decoded the SETUP packet and determined it is not an invalid command, the application must set the CNAK bit of the control endpoint to 1 to clear the NAK bit.)The application also must clear the NAK bit whenever the subsystem sets it. (The subsystem sets it due to the application setting the Stall bit.)The application can clear this bit only when the RxFIFO is empty (for single RxFIFO implementation) or when the RxFIFO corresponding to the same logical endpoint is empty (Multiple RxFIFO implementation). The application can write CNAK any time without waiting for a RxFIFO empty condition. The NAK bit is cleared immediately upon write to CNAK bit. No polling is necessary. 7 0x0 WO Set NAK (snak): Used by the application to set the NAK bit (bit 6 of this register). The application must not set the NAK bit for an IN endpoint until it has received an IN token interrupt indicating that the TxFIFO is empty. 6 0x0 RO NAK Bit (nak): After a SETUP packet, which is decoded by the application, is received by the core, the core sets the NAK bit for all control IN/OUT endpoints. NAK is also set after a STALL response for the endpoint (the STALL bit is set in Endpoint Control register bit 0). 1: The endpoint responds to the USB host with a NAK handshake. 0: The endpoint responds normally. Note 1: A SETUP packet is sent to the application regardless of whether the NAK bit is set. Note 2: A NAK set on ISOC OUT endpoint rejects the ISOC out data packet. 5:4 0x0 RW Endpoint Type (et): The possible options are: 00: Control endpoint 01: Isochronous endpoint 10: Bulk endpoint 11: Interrupt endpoint 3 0x0 RW Poll Demand (p): Poll demand from the application. The application can set this bit after an IN token is received from the endpoint. The application can also set this bit before an IN token is received for the endpoint, if it has the IN transfer data in advance. Note: After sending a zero-length or short packet, the application must wait for the next XFERDONE_TXEMPTY interrupt, before setting up the P bit for the next transfer. 2 0x0 RO Snoop Mode (sn): This is an OUT endpoint field only. These bits are reserved and should be set to zero. 1 0x0 RW Flush TxFIFO (f): The application firmware sets this bit to 1 after it has detected a disconnect/connect on the USB cable, then waits for the IN token endpoint interrupt before resetting this bit to 0. This flushes the stale data out of the TxFIFO. This bit is cleared by the core when TDC (Transmit DMA Complete) occurs on this endpoint. 0x0 RW Stall Handshake (s): On successful reception of a SETUP packet (decoded by the application), the subsystem clears both IN and OUT Stall bits, and sets both the IN and OUT NAK bits. The application must check for RxFIFO emptiness before setting the IN and OUT STALL bit. For non-SETUP packets, the subsystem clears either IN or out STALL bits only if a STALL handshake is returned to the USB host, then sets the corresponding NAK bit. The subsystem returns a STALL handshake for the subsequent transactions of the stalled endpoint until the USB host issues a Clear_Feature command to clear it. Once this bit is set, if the subsystem has already returned a STALL handshake to the USB host, the application firmware cannot clear the S bit to stop the subsystem from sending the STALL handshake on the endpoint. The host must instead send one of the following commands to clear the endpoint Halt status: - Clear Feature (Halt) - SetConfiguration - SetInterface. 0 16.6.1.8 IN Endpoint 1 Status Register (ep1_in_sts_udc_reg)—Offset 24h The Endpoint Status register indicates the endpoint status. Access Method August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 495 Intel® Quark™ SoC X1000—USB 2.0 Type: Memory Mapped I/O Register (Size: 32 bits) Offset: [BAR0] + 24h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:2] + 10h Default: 00000000h Default & Access 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 reserved_3 0 out_tok tx_fifo_empty isoc_xfer_done Bit Range 0 bna 0 in_tok 0 4 he 0 8 mrxfifo_empty 0 12 tdc 0 16 rx_pkt_size 0 clr_feature_halt 20 set_feature_halt 0 24 cdc 0 reserved_1 0 28 xfer_done_txf_empty 31 Field Name (ID): Description 31:29 0x0 RO reserved_1: Reserved bits. These bits are reserved and should be set to zero. 28 0x0 RO Close Descriptor Channel (cdc): Close Descriptor Enhancement is not supported. These bits are reserved and should be set to zero. 27 0x0 RW/1C Transfer Done/Transmit FIFO Empty (xfer_done_txf_empty): This bit indicates that the TXFIFO is empty after the DMA transfer has been completed. The application can use this bit to set the poll bit for the next transfer. The application must first clear this bit after servicing the interrupt. 26 0x0 RW/1C Received Set Halt (set_feature_halt): This bit indicates that the Set Feature (EP HALT) command is received for this endpoint. To stall this endpoint, the application can set the S bit in Endpoint Control Register. After this, the application clears this RSS bit to acknowledge the reception of Set Feature stall command. Once this RSS bit is cleared, core sends the zero-length packet for the Status IN phase of Set Feature command. Received Set Stall indication is applicable only for Bulk and Interrupt transactions. 25 0x0 RW/1C Received Clear Halt (clr_feature_halt): This bit indicates that the Clear Feature (EP HALT) command is received for this endpoint. To continue to stall the endpoint, the application must set the S bit Endpoint Control Register. After this, the application clears this RCS bit to acknowledge the reception of clear stall command. Once this bit is cleared, core sends the zero-length packet for the Status IN phase of clear stall command. Received Clear Stall indication is applicable only for Bulk and Interrupt transactions. 24 0x0 RW/1C Transmit FIFO Empty detected (tx_fifo_empty): This bit indicates that the Transmit FIFO Empty condition is triggered. Application can use this information to load the subsequent data into the Transmit FIFO. The application must clear this bit after writing the data into the Transmit FIFO. Note: This bit is not used for Isochronous endpoints. 23 0x0 RW/1C Isochronous IN transaction complete (isoc_xfer_done): This bit indicates that the isochronous IN transaction for this endpoint is complete. The application can use this information to program the isochronous IN data for the next microframe. This bit is used only in Slave-Only mode. 0x0 RO Receive Packet Size (rx_pkt_size): This is an OUT endpoint field only. These bits are reserved and should be set to zero. 22:11 Intel® Quark™ SoC X1000 Datasheet 496 10 0x0 RW/1C Transmit DMA Completion (tdc): Indicates the transmit DMA has completed transferring a descriptor chain data to the Tx FIFO. After servicing the interrupt, the application must clear this bit. 9 0x0 RW/1C Error response on the host bus (he): Error response on the host bus (AHB) when doing a data transfer, descriptor fetch, or descriptor update for this particular endpoint. After servicing the interrupt, the application must clear this bit. 8 0x0 RO Receive Address FIFO Empty Status (mrxfifo_empty): This is an OUT endpoint field only. These bits are reserved and should be set to zero. August 2015 Document Number: 329676-005US USB 2.0—Intel® Quark™ SoC X1000 Bit Range 16.6.1.9 Default & Access Field Name (ID): Description 7 0x0 RW/1C Buffer Not Available (bna): The subsystem sets this bit when the descriptor status is either Host Busy or DMA Done to indicate that the descriptor was not ready at the time the DMA tried to access it. After servicing the interrupt, the application must clear this bit. 6 0x0 RW/1C IN token (in_tok): An IN token has been received by this endpoint. After servicing the interrupt, application must clear this bit. 5:4 0x0 RO OUT token (out_tok): This is an OUT endpoint field only. These bits are reserved and should be set to zero. 3:0 0x0 RO reserved_3: Reserved bits. These bits are reserved and should be set to zero. IN Endpoint 1 Buffer Size Register (ep1_in_bufsize_udc_reg)—Offset 28h Access Method Type: Memory Mapped I/O Register (Size: 32 bits) Offset: [BAR0] + 28h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:2] + 10h Default: 00000000h 0 24 0 0 0 0 Bit Range Default & Access 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 0 4 0 0 0 0 0 0 0 0 0 buff_size_1 0 buff_size_frame_number 28 0 reserved 0 isoc_data_pid 31 Field Name (ID): Description 0x0 RO reserved: Reserved bits. These bits are reserved and should be set to zero. 17:16 0x0 RW Isochronous IN Transaction PID (isoc_data_pid): Initial data PID to be sent for a high-bandwidth isochronous IN transaction. This field is used only in Slave-Only mode. 00: DATA0 PID is sent 01: DATA0 PID is sent 10: DATA1 PID is sent 11: DATA2 PID is sent 15:10 0x0 RO Buffer Size (buff_size_frame_number): These bits are reserved and should be set to zero. 9:0 0x0 RW Buffer Size (buff_size_1): Buffer size required for this endpoint. The application can program this field to make each endpoints buffers adaptive, providing flexibility in buffer size when the interface or configuration is changed. This value is in 32-bit words, and indicates the number of 32-bit word entries in the Transmit FIFO. NOTE: the maximum size of the TxFIFO is 1024 32-bit word entries. 31:18 August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 497 Intel® Quark™ SoC X1000—USB 2.0 16.6.1.10 IN Endpoint 1 Maximum Packet Size Register (ep1_in_mpkt_sz_reg)— Offset 2Ch This register also specifies the maximum packet size an endpoint should support. This maximum size is used to calculate whether the Receive FIFO has sufficient space to accept a packet. When changing the maximum packet size for a specific endpoint, the user must also program the USB Device Controller register space. Access Method Type: Memory Mapped I/O Register (Size: 32 bits) Offset: [BAR0] + 2Ch BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:2] + 10h Default: 00000000h 31 0 0 0 24 0 0 0 0 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 Bit Range 16.6.1.11 0 4 0 0 0 0 0 0 0 0 0 mpkt_size buff_size 0 28 Default & Access Field Name (ID): Description 31:16 0x0 RO Buffer Size (buff_size): This is an OUT endpoint field only. These bits are reserved and should be set to zero. 15:0 0x0 RO Max Packet Size (mpkt_size): Maximum packet size for the endpoint in bytes. This maximum size is used to calculate whether the Receive FIFO has sufficient space to accept a packet. When changing the maximum packet size for a specific endpoint, the user must also program the corresponding Physical Endpoint Register. IN Endpoint 1 Data Descriptor Pointer Register (ep1_in_desptr_udc_reg)—Offset 34h Access Method Type: Memory Mapped I/O Register (Size: 32 bits) Offset: [BAR0] + 34h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:2] + 10h Default: 00000000h 31 0 0 0 24 0 0 0 0 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 0 4 0 0 0 0 0 0 0 0 0 desptr 0 28 Bit Range 31:0 Intel® Quark™ SoC X1000 Datasheet 498 Default & Access 0x0 RW Field Name (ID): Description Descriptor Pointer (desptr): This register contains the data descriptor pointers. August 2015 Document Number: 329676-005US USB 2.0—Intel® Quark™ SoC X1000 16.6.1.12 IN Endpoint 1 Write Confirmation register (for Slave-Only mode) (ep1_wr_cfrm_udc_reg)—Offset 3Ch Access Method Type: Memory Mapped I/O Register (Size: 32 bits) Offset: [BAR0] + 3Ch BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:2] + 10h Default: 00000000h 31 28 0 0 0 24 0 0 0 0 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 0 4 0 0 0 0 0 0 0 0 0 wr_cfrm 0 Bit Range Default & Access 0x0 WO 31:0 16.6.1.13 Field Name (ID): Description Write Confirmation (for Slave-Only mode) (wr_cfrm): Writing to this register confirms the IN data into the TxFIFO. IN Endpoint 2 Control Register (ep2_in_ctrl_udc_reg)—Offset 40h This register is used to program the endpoint as required by the application. Access Method Type: Memory Mapped I/O Register (Size: 32 bits) Offset: [BAR0] + 40h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:2] + 10h Default: 00000000h Bit Range Default & Access 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 s 0 f 0 p 0 0 sn 0 et 0 nak 0 4 snak 0 8 rrdy 0 12 cnak 0 16 null_bit 0 20 mrx_flush 0 24 reserved 0 28 close_desc 31 Field Name (ID): Description 31:13 0x0 RO reserved: Reserved bits. These bits are reserved and should be set to zero. 12 0x0 RO Receive FIFO Flush for Multiple Receive FIFO (mrx_flush): This is an OUT endpoint field only. These bits are reserved and should be set to zero. 11 0x0 RO Close Descriptor Channel (close_desc): Close Descriptor Enhancement is not supported. These bits are reserved and should be set to zero. 10 0x0 RW Send Null Packet (null_bit): This bit provides the application with a mechanism to instruct the USB Device Controller to send a NULL (zero length) packet when no data is available in the particular endpoint TxFIFO. If this bit is set, when no data is available in the endpoint TxFIFO, the USB Device Controller sends a NULL packet. 9 0x0 RO Receive Ready (rrdy): This is an OUT endpoint field only. These bits are reserved and should be set to zero. August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 499 Intel® Quark™ SoC X1000—USB 2.0 Bit Range Default & Access Field Name (ID): Description 8 0x0 WO Clear NAK (cnak): Used by the application to clear the NAK bit (bit 6). After the subsystem sets bit 6 (NAK), the application must clear it with a write of 1 to the CNAK bit. (For example, after the application has decoded the SETUP packet and determined it is not an invalid command, the application must set the CNAK bit of the control endpoint to 1 to clear the NAK bit.)The application also must clear the NAK bit whenever the subsystem sets it. (The subsystem sets it due to the application setting the Stall bit.)The application can clear this bit only when the RxFIFO is empty (for single RxFIFO implementation) or when the RxFIFO corresponding to the same logical endpoint is empty (Multiple RxFIFO implementation). The application can write CNAK any time without waiting for a RxFIFO empty condition. The NAK bit is cleared immediately upon write to CNAK bit. No polling is necessary. 7 0x0 WO Set NAK (snak): Used by the application to set the NAK bit (bit 6 of this register). The application must not set the NAK bit for an IN endpoint until it has received an IN token interrupt indicating that the TxFIFO is empty. 6 0x0 RO NAK Bit (nak): After a SETUP packet, which is decoded by the application, is received by the core, the core sets the NAK bit for all control IN/OUT endpoints. NAK is also set after a STALL response for the endpoint (the STALL bit is set in Endpoint Control register bit 0). 1: The endpoint responds to the USB host with a NAK handshake. 0: The endpoint responds normally. Note 1: A SETUP packet is sent to the application regardless of whether the NAK bit is set. Note 2: A NAK set on ISOC OUT endpoint rejects the ISOC out data packet. 5:4 0x0 RW Endpoint Type (et): The possible options are: 00: Control endpoint 01: Isochronous endpoint 10: Bulk endpoint 11: Interrupt endpoint 3 0x0 RW Poll Demand (p): Poll demand from the application. The application can set this bit after an IN token is received from the endpoint. The application can also set this bit before an IN token is received for the endpoint, if it has the IN transfer data in advance. Note: After sending a zero-length or short packet, the application must wait for the next XFERDONE_TXEMPTY interrupt, before setting up the P bit for the next transfer. 2 0x0 RO Snoop Mode (sn): This is an OUT endpoint field only. These bits are reserved and should be set to zero. 1 0x0 RW Flush TxFIFO (f): The application firmware sets this bit to 1 after it has detected a disconnect/connect on the USB cable, then waits for the IN token endpoint interrupt before resetting this bit to 0. This flushes the stale data out of the TxFIFO. This bit is cleared by the core when TDC (Transmit DMA Complete) occurs on this endpoint. 0x0 RW Stall Handshake (s): On successful reception of a SETUP packet (decoded by the application), the subsystem clears both IN and OUT Stall bits, and sets both the IN and OUT NAK bits. The application must check for RxFIFO emptiness before setting the IN and OUT STALL bit. For non-SETUP packets, the subsystem clears either IN or out STALL bits only if a STALL handshake is returned to the USB host, then sets the corresponding NAK bit. The subsystem returns a STALL handshake for the subsequent transactions of the stalled endpoint until the USB host issues a Clear_Feature command to clear it. Once this bit is set, if the subsystem has already returned a STALL handshake to the USB host, the application firmware cannot clear the S bit to stop the subsystem from sending the STALL handshake on the endpoint. The host must instead send one of the following commands to clear the endpoint Halt status: - Clear Feature (Halt) - SetConfiguration - SetInterface. 0 16.6.1.14 IN Endpoint 2 Status Register (ep2_in_sts_udc_reg)—Offset 44h The Endpoint Status register indicates the endpoint status. Access Method Intel® Quark™ SoC X1000 Datasheet 500 August 2015 Document Number: 329676-005US USB 2.0—Intel® Quark™ SoC X1000 Type: Memory Mapped I/O Register (Size: 32 bits) Offset: [BAR0] + 44h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:2] + 10h Default: 00000000h Default & Access 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 reserved_3 0 out_tok tx_fifo_empty isoc_xfer_done Bit Range 0 bna 0 in_tok 0 4 he 0 8 mrxfifo_empty 0 12 tdc 0 16 rx_pkt_size 0 clr_feature_halt 20 set_feature_halt 0 24 cdc 0 reserved_1 0 28 xfer_done_txf_empty 31 Field Name (ID): Description 31:29 0x0 RO reserved_1: Reserved bits. These bits are reserved and should be set to zero. 28 0x0 RO Close Descriptor Channel (cdc): Close Descriptor Enhancement is not supported. These bits are reserved and should be set to zero. 27 0x0 RW/1C Transfer Done/Transmit FIFO Empty (xfer_done_txf_empty): This bit indicates that the TXFIFO is empty after the DMA transfer has been completed. The application can use this bit to set the poll bit for the next transfer. The application must first clear this bit after servicing the interrupt. 26 0x0 RW/1C Received Set Halt (set_feature_halt): This bit indicates that the Set Feature (EP HALT) command is received for this endpoint. To stall this endpoint, the application can set the S bit in Endpoint Control Register. After this, the application clears this RSS bit to acknowledge the reception of Set Feature stall command. Once this RSS bit is cleared, core sends the zero-length packet for the Status IN phase of Set Feature command. Received Set Stall indication is applicable only for Bulk and Interrupt transactions. 25 0x0 RW/1C Received Clear Halt (clr_feature_halt): This bit indicates that the Clear Feature (EP HALT) command is received for this endpoint. To continue to stall the endpoint, the application must set the S bit Endpoint Control Register. After this, the application clears this RCS bit to acknowledge the reception of clear stall command. Once this bit is cleared, core sends the zero-length packet for the Status IN phase of clear stall command. Received Clear Stall indication is applicable only for Bulk and Interrupt transactions. 24 0x0 RW/1C Transmit FIFO Empty detected (tx_fifo_empty): This bit indicates that the Transmit FIFO Empty condition is triggered. Application can use this information to load the subsequent data into the Transmit FIFO. The application must clear this bit after writing the data into the Transmit FIFO. Note: This bit is not used for Isochronous endpoints. 23 0x0 RW/1C Isochronous IN transaction complete (isoc_xfer_done): This bit indicates that the isochronous IN transaction for this endpoint is complete. The application can use this information to program the isochronous IN data for the next microframe. This bit is used only in Slave-Only mode. 0x0 RO Receive Packet Size (rx_pkt_size): This is an OUT endpoint field only. These bits are reserved and should be set to zero. 22:11 10 0x0 RW/1C Transmit DMA Completion (tdc): Indicates the transmit DMA has completed transferring a descriptor chain data to the Tx FIFO. After servicing the interrupt, the application must clear this bit. 9 0x0 RW/1C Error response on the host bus (he): Error response on the host bus (AHB) when doing a data transfer, descriptor fetch, or descriptor update for this particular endpoint. After servicing the interrupt, the application must clear this bit. 8 0x0 RO August 2015 Document Number: 329676-005US Receive Address FIFO Empty Status (mrxfifo_empty): This is an OUT endpoint field only. These bits are reserved and should be set to zero. Intel® Quark™ SoC X1000 Datasheet 501 Intel® Quark™ SoC X1000—USB 2.0 Bit Range 16.6.1.15 Default & Access Field Name (ID): Description 7 0x0 RW/1C Buffer Not Available (bna): The subsystem sets this bit when the descriptor status is either Host Busy or DMA Done to indicate that the descriptor was not ready at the time the DMA tried to access it. After servicing the interrupt, the application must clear this bit. 6 0x0 RW/1C IN token (in_tok): An IN token has been received by this endpoint. After servicing the interrupt, application must clear this bit. 5:4 0x0 RO OUT token (out_tok): This is an OUT endpoint field only. These bits are reserved and should be set to zero. 3:0 0x0 RO reserved_3: Reserved bits. These bits are reserved and should be set to zero. IN Endpoint 2 Buffer Size Register (ep2_in_bufsize_udc_reg)—Offset 48h Access Method Type: Memory Mapped I/O Register (Size: 32 bits) Offset: [BAR0] + 48h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:2] + 10h Default: 00000000h 0 24 0 0 0 0 Bit Range Default & Access 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 0 4 0 0 0 0 0 0 0 0 0 buff_size_1 0 buff_size_frame_number 28 0 reserved 0 isoc_data_pid 31 Field Name (ID): Description 0x0 RO reserved: Reserved bits. These bits are reserved and should be set to zero. 17:16 0x0 RW Isochronous IN Transaction PID (isoc_data_pid): Initial data PID to be sent for a high-bandwidth isochronous IN transaction. This field is used only in Slave-Only mode. 00: DATA0 PID is sent 01: DATA0 PID is sent 10: DATA1 PID is sent 11: DATA2 PID is sent 15:10 0x0 RO Buffer Size (buff_size_frame_number): These bits are reserved and should be set to zero. 9:0 0x0 RW Buffer Size (buff_size_1): Buffer size required for this endpoint. The application can program this field to make each endpoints buffers adaptive, providing flexibility in buffer size when the interface or configuration is changed. This value is in 32-bit words, and indicates the number of 32-bit word entries in the Transmit FIFO. NOTE: the maximum size of the TxFIFO is 1024 32-bit word entries. 31:18 Intel® Quark™ SoC X1000 Datasheet 502 August 2015 Document Number: 329676-005US USB 2.0—Intel® Quark™ SoC X1000 16.6.1.16 IN Endpoint 2 Maximum Packet Size Register (ep2_in_mpkt_sz_reg)— Offset 4Ch This register also specifies the maximum packet size an endpoint should support. This maximum size is used to calculate whether the Receive FIFO has sufficient space to accept a packet. When changing the maximum packet size for a specific endpoint, the user must also program the USB Device Controller register space. Access Method Type: Memory Mapped I/O Register (Size: 32 bits) Offset: [BAR0] + 4Ch BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:2] + 10h Default: 00000000h 31 0 0 0 24 0 0 0 0 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 Bit Range 16.6.1.17 0 4 0 0 0 0 0 0 0 0 0 mpkt_size buff_size 0 28 Default & Access Field Name (ID): Description 31:16 0x0 RO Buffer Size (buff_size): This is an OUT endpoint field only. These bits are reserved and should be set to zero. 15:0 0x0 RO Max Packet Size (mpkt_size): Maximum packet size for the endpoint in bytes. This maximum size is used to calculate whether the Receive FIFO has sufficient space to accept a packet. When changing the maximum packet size for a specific endpoint, the user must also program the corresponding Physical Endpoint Register. IN Endpoint 2 Data Descriptor Pointer Register (ep2_in_desptr_udc_reg)—Offset 54h Access Method Type: Memory Mapped I/O Register (Size: 32 bits) Offset: [BAR0] + 54h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:2] + 10h Default: 00000000h 31 0 0 0 24 0 0 0 0 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 0 4 0 0 0 0 0 0 0 0 0 desptr 0 28 Bit Range 31:0 Default & Access 0x0 RW August 2015 Document Number: 329676-005US Field Name (ID): Description Descriptor Pointer (desptr): This register contains the data descriptor pointers. Intel® Quark™ SoC X1000 Datasheet 503 Intel® Quark™ SoC X1000—USB 2.0 16.6.1.18 IN Endpoint 2 Write Confirmation register (for Slave-Only mode) (ep2_wr_cfrm_udc_reg)—Offset 5Ch Access Method Type: Memory Mapped I/O Register (Size: 32 bits) Offset: [BAR0] + 5Ch BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:2] + 10h Default: 00000000h 31 28 0 0 0 24 0 0 0 0 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 0 4 0 0 0 0 0 0 0 0 0 wr_cfrm 0 Bit Range Default & Access 0x0 WO 31:0 16.6.1.19 Field Name (ID): Description Write Confirmation (for Slave-Only mode) (wr_cfrm): Writing to this register confirms the IN data into the TxFIFO. IN Endpoint 3 Control Register (ep3_in_ctrl_udc_reg)—Offset 60h This register is used to program the endpoint as required by the application. Access Method Type: Memory Mapped I/O Register (Size: 32 bits) Offset: [BAR0] + 60h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:2] + 10h Default: 00000000h Bit Range Default & Access 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 f 0 s 0 p 0 0 sn 0 et 0 nak 0 4 snak 0 8 rrdy 0 12 cnak 0 16 null_bit 0 20 mrx_flush 0 24 reserved 0 28 close_desc 31 Field Name (ID): Description 31:13 0x0 RO reserved: Reserved bits. These bits are reserved and should be set to zero. 12 0x0 RO Receive FIFO Flush for Multiple Receive FIFO (mrx_flush): This is an OUT endpoint field only. These bits are reserved and should be set to zero. 11 0x0 RO Close Descriptor Channel (close_desc): Close Descriptor Enhancement is not supported. These bits are reserved and should be set to zero. 10 0x0 RW Send Null Packet (null_bit): This bit provides the application with a mechanism to instruct the USB Device Controller to send a NULL (zero length) packet when no data is available in the particular endpoint TxFIFO. If this bit is set, when no data is available in the endpoint TxFIFO, the USB Device Controller sends a NULL packet. 9 0x0 RO Receive Ready (rrdy): This is an OUT endpoint field only. These bits are reserved and should be set to zero. Intel® Quark™ SoC X1000 Datasheet 504 August 2015 Document Number: 329676-005US USB 2.0—Intel® Quark™ SoC X1000 Bit Range Default & Access Field Name (ID): Description 8 0x0 WO Clear NAK (cnak): Used by the application to clear the NAK bit (bit 6). After the subsystem sets bit 6 (NAK), the application must clear it with a write of 1 to the CNAK bit. (For example, after the application has decoded the SETUP packet and determined it is not an invalid command, the application must set the CNAK bit of the control endpoint to 1 to clear the NAK bit.)The application also must clear the NAK bit whenever the subsystem sets it. (The subsystem sets it due to the application setting the Stall bit.)The application can clear this bit only when the RxFIFO is empty (for single RxFIFO implementation) or when the RxFIFO corresponding to the same logical endpoint is empty (Multiple RxFIFO implementation). The application can write CNAK any time without waiting for a RxFIFO empty condition. The NAK bit is cleared immediately upon write to CNAK bit. No polling is necessary. 7 0x0 WO Set NAK (snak): Used by the application to set the NAK bit (bit 6 of this register). The application must not set the NAK bit for an IN endpoint until it has received an IN token interrupt indicating that the TxFIFO is empty. 6 0x0 RO NAK Bit (nak): After a SETUP packet, which is decoded by the application, is received by the core, the core sets the NAK bit for all control IN/OUT endpoints. NAK is also set after a STALL response for the endpoint (the STALL bit is set in Endpoint Control register bit 0). 1: The endpoint responds to the USB host with a NAK handshake. 0: The endpoint responds normally. Note 1: A SETUP packet is sent to the application regardless of whether the NAK bit is set. Note 2: A NAK set on ISOC OUT endpoint rejects the ISOC out data packet. 5:4 0x0 RW Endpoint Type (et): The possible options are: 00: Control endpoint 01: Isochronous endpoint 10: Bulk endpoint 11: Interrupt endpoint 3 0x0 RW Poll Demand (p): Poll demand from the application. The application can set this bit after an IN token is received from the endpoint. The application can also set this bit before an IN token is received for the endpoint, if it has the IN transfer data in advance. Note: After sending a zero-length or short packet, the application must wait for the next XFERDONE_TXEMPTY interrupt, before setting up the P bit for the next transfer. 2 0x0 RO Snoop Mode (sn): This is an OUT endpoint field only. These bits are reserved and should be set to zero. 1 0x0 RW Flush TxFIFO (f): The application firmware sets this bit to 1 after it has detected a disconnect/connect on the USB cable, then waits for the IN token endpoint interrupt before resetting this bit to 0. This flushes the stale data out of the TxFIFO. This bit is cleared by the core when TDC (Transmit DMA Complete) occurs on this endpoint. 0x0 RW Stall Handshake (s): On successful reception of a SETUP packet (decoded by the application), the subsystem clears both IN and OUT Stall bits, and sets both the IN and OUT NAK bits. The application must check for RxFIFO emptiness before setting the IN and OUT STALL bit. For non-SETUP packets, the subsystem clears either IN or out STALL bits only if a STALL handshake is returned to the USB host, then sets the corresponding NAK bit. The subsystem returns a STALL handshake for the subsequent transactions of the stalled endpoint until the USB host issues a Clear_Feature command to clear it. Once this bit is set, if the subsystem has already returned a STALL handshake to the USB host, the application firmware cannot clear the S bit to stop the subsystem from sending the STALL handshake on the endpoint. The host must instead send one of the following commands to clear the endpoint Halt status: - Clear Feature (Halt) - SetConfiguration - SetInterface. 0 16.6.1.20 IN Endpoint 3 Status Register (ep3_in_sts_udc_reg)—Offset 64h The Endpoint Status register indicates the endpoint status. Access Method August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 505 Intel® Quark™ SoC X1000—USB 2.0 Type: Memory Mapped I/O Register (Size: 32 bits) Offset: [BAR0] + 64h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:2] + 10h Default: 00000000h Default & Access 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 reserved_3 0 out_tok tx_fifo_empty isoc_xfer_done Bit Range 0 bna 0 in_tok 0 4 he 0 8 mrxfifo_empty 0 12 tdc 0 16 rx_pkt_size 0 clr_feature_halt 20 set_feature_halt 0 24 cdc 0 reserved_1 0 28 xfer_done_txf_empty 31 Field Name (ID): Description 31:29 0x0 RO reserved_1: Reserved bits. These bits are reserved and should be set to zero. 28 0x0 RO Close Descriptor Channel (cdc): Close Descriptor Enhancement is not supported. These bits are reserved and should be set to zero. 27 0x0 RW/1C Transfer Done/Transmit FIFO Empty (xfer_done_txf_empty): This bit indicates that the TXFIFO is empty after the DMA transfer has been completed. The application can use this bit to set the poll bit for the next transfer. The application must first clear this bit after servicing the interrupt. 26 0x0 RW/1C Received Set Halt (set_feature_halt): This bit indicates that the Set Feature (EP HALT) command is received for this endpoint. To stall this endpoint, the application can set the S bit in Endpoint Control Register. After this, the application clears this RSS bit to acknowledge the reception of Set Feature stall command. Once this RSS bit is cleared, core sends the zero-length packet for the Status IN phase of Set Feature command. Received Set Stall indication is applicable only for Bulk and Interrupt transactions. 25 0x0 RW/1C Received Clear Halt (clr_feature_halt): This bit indicates that the Clear Feature (EP HALT) command is received for this endpoint. To continue to stall the endpoint, the application must set the S bit Endpoint Control Register. After this, the application clears this RCS bit to acknowledge the reception of clear stall command. Once this bit is cleared, core sends the zero-length packet for the Status IN phase of clear stall command. Received Clear Stall indication is applicable only for Bulk and Interrupt transactions. 24 0x0 RW/1C Transmit FIFO Empty detected (tx_fifo_empty): This bit indicates that the Transmit FIFO Empty condition is triggered. Application can use this information to load the subsequent data into the Transmit FIFO. The application must clear this bit after writing the data into the Transmit FIFO. Note: This bit is not used for Isochronous endpoints. 23 0x0 RW/1C Isochronous IN transaction complete (isoc_xfer_done): This bit indicates that the isochronous IN transaction for this endpoint is complete. The application can use this information to program the isochronous IN data for the next microframe. This bit is used only in Slave-Only mode. 0x0 RO Receive Packet Size (rx_pkt_size): This is an OUT endpoint field only. These bits are reserved and should be set to zero. 22:11 Intel® Quark™ SoC X1000 Datasheet 506 10 0x0 RW/1C Transmit DMA Completion (tdc): Indicates the transmit DMA has completed transferring a descriptor chain data to the Tx FIFO. After servicing the interrupt, the application must clear this bit. 9 0x0 RW/1C Error response on the host bus (he): Error response on the host bus (AHB) when doing a data transfer, descriptor fetch, or descriptor update for this particular endpoint. After servicing the interrupt, the application must clear this bit. 8 0x0 RO Receive Address FIFO Empty Status (mrxfifo_empty): This is an OUT endpoint field only. These bits are reserved and should be set to zero. August 2015 Document Number: 329676-005US USB 2.0—Intel® Quark™ SoC X1000 Bit Range 16.6.1.21 Default & Access Field Name (ID): Description 7 0x0 RW/1C Buffer Not Available (bna): The subsystem sets this bit when the descriptor status is either Host Busy or DMA Done to indicate that the descriptor was not ready at the time the DMA tried to access it. After servicing the interrupt, the application must clear this bit. 6 0x0 RW/1C IN token (in_tok): An IN token has been received by this endpoint. After servicing the interrupt, application must clear this bit. 5:4 0x0 RO OUT token (out_tok): This is an OUT endpoint field only. These bits are reserved and should be set to zero. 3:0 0x0 RO reserved_3: Reserved bits. These bits are reserved and should be set to zero. IN Endpoint 3 Buffer Size Register (ep3_in_bufsize_udc_reg)—Offset 68h Access Method Type: Memory Mapped I/O Register (Size: 32 bits) Offset: [BAR0] + 68h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:2] + 10h Default: 00000000h 0 24 0 0 0 0 Bit Range Default & Access 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 0 4 0 0 0 0 0 0 0 0 0 buff_size_1 0 buff_size_frame_number 28 0 reserved 0 isoc_data_pid 31 Field Name (ID): Description 0x0 RO reserved: Reserved bits. These bits are reserved and should be set to zero. 17:16 0x0 RW Isochronous IN Transaction PID (isoc_data_pid): Initial data PID to be sent for a high-bandwidth isochronous IN transaction. This field is used only in Slave-Only mode. 00: DATA0 PID is sent 01: DATA0 PID is sent 10: DATA1 PID is sent 11: DATA2 PID is sent 15:10 0x0 RO Buffer Size (buff_size_frame_number): These bits are reserved and should be set to zero. 9:0 0x0 RW Buffer Size (buff_size_1): Buffer size required for this endpoint. The application can program this field to make each endpoints buffers adaptive, providing flexibility in buffer size when the interface or configuration is changed. This value is in 32-bit words, and indicates the number of 32-bit word entries in the Transmit FIFO. NOTE: the maximum size of the TxFIFO is 1024 32-bit word entries. 31:18 August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 507 Intel® Quark™ SoC X1000—USB 2.0 16.6.1.22 IN Endpoint 3 Maximum Packet Size Register (ep3_in_mpkt_sz_reg)— Offset 6Ch This register also specifies the maximum packet size an endpoint should support. This maximum size is used to calculate whether the Receive FIFO has sufficient space to accept a packet. When changing the maximum packet size for a specific endpoint, the user must also program the USB Device Controller register space. Access Method Type: Memory Mapped I/O Register (Size: 32 bits) Offset: [BAR0] + 6Ch BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:2] + 10h Default: 00000000h 31 0 0 0 24 0 0 0 0 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 Bit Range 16.6.1.23 0 4 0 0 0 0 0 0 0 0 0 mpkt_size buff_size 0 28 Default & Access Field Name (ID): Description 31:16 0x0 RO Buffer Size (buff_size): This is an OUT endpoint field only. These bits are reserved and should be set to zero. 15:0 0x0 RO Max Packet Size (mpkt_size): Maximum packet size for the endpoint in bytes. This maximum size is used to calculate whether the Receive FIFO has sufficient space to accept a packet. When changing the maximum packet size for a specific endpoint, the user must also program the corresponding Physical Endpoint Register. IN Endpoint 3 Data Descriptor Pointer Register (ep3_in_desptr_udc_reg)—Offset 74h Access Method Type: Memory Mapped I/O Register (Size: 32 bits) Offset: [BAR0] + 74h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:2] + 10h Default: 00000000h 31 0 0 0 24 0 0 0 0 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 0 4 0 0 0 0 0 0 0 0 0 desptr 0 28 Bit Range 31:0 Intel® Quark™ SoC X1000 Datasheet 508 Default & Access 0x0 RW Field Name (ID): Description Descriptor Pointer (desptr): This register contains the data descriptor pointers. August 2015 Document Number: 329676-005US USB 2.0—Intel® Quark™ SoC X1000 16.6.1.24 IN Endpoint 3 Write Confirmation register (for Slave-Only mode) (ep3_wr_cfrm_udc_reg)—Offset 7Ch Access Method Type: Memory Mapped I/O Register (Size: 32 bits) Offset: [BAR0] + 7Ch BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:2] + 10h Default: 00000000h 31 28 0 0 0 24 0 0 0 0 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 0 4 0 0 0 0 0 0 0 0 0 wr_cfrm 0 Bit Range Default & Access 0x0 WO 31:0 16.6.1.25 Field Name (ID): Description Write Confirmation (for Slave-Only mode) (wr_cfrm): Writing to this register confirms the IN data into the TxFIFO. OUT Endpoint 0 Control Register (ep0_out_ctrl_udc_reg)—Offset 200h This register is used to program the endpoint as required by the application. Access Method Type: Memory Mapped I/O Register (Size: 32 bits) Offset: [BAR0] + 200h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:2] + 10h Default: 00000000h Bit Range Default & Access 16 0 0 0 0 12 0 0 0 8 0 0 0 4 0 0 0 0 0 0 0 0 0 0 0 s 0 f 0 p 0 sn 20 0 et 0 nak 0 snak 0 rrdy 24 0 cnak 0 null_bit 0 mrx_flush 28 0 reserved 0 close_desc 31 Field Name (ID): Description 0x0 RO reserved: Reserved bits. These bits are reserved and should be set to zero. 12 0x0 WO Receive FIFO Flush for Multiple Receive FIFO (mrx_flush): When the application wants to flush the endpoint receive FIFO, it must first set the SNAK bit in the Endpoint Control register. If the receive DMA is in progress, then the core will finish the current descriptor, terminate the DMA, and flush the data in the endpoint receive FIFO and clear this bit. The application must clear this bit after the EP receive FIFO is empty, by checking the MRXFIFO EMPTY bit in the Endpoint Status register. 11 0x0 RO Close Descriptor Channel (close_desc): Close Descriptor Enhancement is not supported. These bits are reserved and should be set to zero. 10 0x0 RO Send Null Packet (null_bit): This is an IN endpoint field only. These bits are reserved and should be set to zero. 31:13 August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 509 Intel® Quark™ SoC X1000—USB 2.0 Bit Range Default & Access Field Name (ID): Description 0x0 RW Receive Ready (rrdy): If this bit is set by the application, on receiving an OUT packet, the DMA sends the packet to system memory. This bit is deasserted at the end of packet if the Descriptor Update bit is set in the Device Control register. This bit is deasserted at the end of payload if the Descriptor Update bit is deasserted. This bit can be set by the application at any time. The application cannot clear this bit if the DMA is busy transferring the data. 8 0x0 WO Clear NAK (cnak): Used by the application to clear the NAK bit (bit 6). After the subsystem sets bit 6 (NAK), the application must clear it with a write of 1 to the CNAK bit. (For example, after the application has decoded the SETUP packet and determined it is not an invalid command, the application must set the CNAK bit of the control endpoint to 1 to clear the NAK bit.)The application also must clear the NAK bit whenever the subsystem sets it. (The subsystem sets it due to the application setting the Stall bit.)The application can clear this bit only when the RxFIFO is empty (for single RxFIFO implementation) or when the RxFIFO corresponding to the same logical endpoint is empty (Multiple RxFIFO implementation). The application can write CNAK any time without waiting for a RxFIFO empty condition. The NAK bit is cleared immediately upon write to CNAK bit. No polling is necessary. 7 0x0 WO Set NAK. (snak): Used by the application to set the NAK bit (bit 6 of this register). The application must not set the NAK bit for an IN endpoint until it has received an IN token interrupt indicating that the TxFIFO is empty. 6 0x0 RO NAK Handshake Enable (nak): After a SETUP packet, which is decoded by the application, is received by the core, the core sets the NAK bit for all control IN/OUT endpoints. NAK is also set after a STALL response for the endpoint (the STALL bit is set in Endpoint Control register bit 0). 1: The endpoint responds to the USB host with a NAK handshake. 0: The endpoint responds normally. Note 1: A SETUP packet is sent to the application regardless of whether the NAK bit is set. Note 2: The NAK set on ISOC OUT endpoint rejects the ISOC out data packet. 5:4 0x0 RW Endpoint Type (et): Endpoint Type (2-bit). The possible options are: 00: Control endpoint 01: Isochronous endpoint 10: Bulk endpoint 11: Interrupt endpoint 3 0x0 RO Poll Demand (p): This is an IN endpoint field only. These bits are reserved and should be set to zero. 2 0x0 RW Snoop Mode (sn): Configures the endpoint for Snoop mode. In this mode, the subsystem does not check the correctness of OUT packets before transferring them to application memory. 1 0x0 RO Flush TxFIFO (f): This is an IN endpoint field only. These bits are reserved and should be set to zero. 0x0 RW Stall Handshake (s): On successful reception of a SETUP packet (decoded by the application), the subsystem clears both IN and OUT Stall bits, and sets both the IN and OUT NAK bits. The application must check for RxFIFO emptiness before setting the IN and OUT STALL bit. For non-SETUP packets, the subsystem clears either IN or out STALL bits only if a STALL handshake is returned to the USB host, then sets the corresponding NAK bit. The subsystem returns a STALL handshake for the subsequent transactions of the stalled endpoint until the USB host issues a Clear_Feature command to clear it. Once this bit is set, if the subsystem has already returned a STALL handshake to the USB host, the application firmware cannot clear the S bit to stop the subsystem from sending the STALL handshake on the endpoint. The host must instead send one of the following commands to clear the endpoint Halt status: - Clear Feature (Halt) - SetConfiguration - SetInterface. 9 0 16.6.1.26 OUT Endpoint 0 Status Register (ep0_out_sts_udc_reg)—Offset 204h The Endpoint Status register indicates the endpoint status. Access Method Intel® Quark™ SoC X1000 Datasheet 510 August 2015 Document Number: 329676-005US USB 2.0—Intel® Quark™ SoC X1000 Type: Memory Mapped I/O Register (Size: 32 bits) Offset: [BAR0] + 204h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:2] + 10h Default: 00000100h Default & Access 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 reserved_3 0 out_tok tx_fifo_empty isoc_xfer_done Bit Range 0 bna 0 in_tok 0 4 he 0 8 mrxfifo_empty 0 12 tdc 0 16 rx_pkt_size 0 clr_feature_halt 20 set_feature_halt 0 24 cdc 0 reserved_1 0 28 xfer_done_txf_empty 31 Field Name (ID): Description 31:29 0x0 RO reserved_1: Reserved bits. These bits are reserved and should be set to zero. 28 0x0 RO Close Descriptor Channel (cdc): Close Descriptor Enhancement is not supported. These bits are reserved and should be set to zero. 27 0x0 RO Transfer Done/Transmit FIFO Empty (xfer_done_txf_empty): This is an IN endpoint field only. These bits are reserved and should be set to zero. 0x0 RW/1C Received Set Halt (set_feature_halt): This bit indicates that the Set Feature (EP HALT) command is received for this endpoint .To stall this endpoint, the application can set the S bit in Endpoint Control Register. After this, the application clears this RSS bit to acknowledge the reception of Set Feature sta command. Once this RSS bit is cleared, core sends the zero-length packet for the Status IN phase of Set Feature command. Received Set Stall indication is applicable only for Bulk and Interrupt transactions. 25 0x0 RW/1C Received Clear Halt (clr_feature_halt): This bit indicates that the Clear Feature (EP HALT) command is received for this endpoint. To continue to stall the endpoint, the application must set the S bit Endpoint Control Register. After this, the application clears this RCS bit to acknowledge the reception of clear stall command. Once this bit is cleared, core sends the zero-length packet for the Status IN phase of clear stall command. Received Clear Stall indication is applicable only for Bulk and Interrupt transactions. 24 0x0 RO Transmit FIFO Empty detected (tx_fifo_empty): This is an IN endpoint field only. These bits are reserved and should be set to zero. 23 0x0 RO Isochronous IN transaction complete (isoc_xfer_done): This is an IN endpoint field only. These bits are reserved and should be set to zero. 22:11 0x0 RW Receive Packet Size (rx_pkt_size): Indicates the number of bytes in the current receive packet the RxFIFO is receiving. Because the USB host always sends 8 bytes of SETUP data, these bits do not indicate the receipt of 8 bytes of SETUP data for a SETUP packet. Rather, these bits indicate the configuration status (Configuration number [22:19], Interface number [18:15], and Alternate Setting number [14:11]). This field is used in slave mode only. In DMA mode, the application must check the status from the endpoint data descriptor. 10 0x0 RO Transmit DMA Completion (tdc): This is an IN endpoint field only. These bits are reserved and should be set to zero. 0x0 RW/1C System Host Error (he): Error response on the host bus (AHB) when doing a data transfer, descriptor fetch, or descriptor update for this particular endpoint. After servicing the interrupt, the application must clear this bit. 26 9 August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 511 Intel® Quark™ SoC X1000—USB 2.0 Bit Range 16.6.1.27 Default & Access Field Name (ID): Description 8 1h RO Receive Address FIFO Empty Status (mrxfifo_empty): This bit indicates the empty status of the endpoint receive address FIFO. This bit is set by the core after the DMA transfers data to system memory, and there are no new packets received from the USB. This bit is cleared by the core after receiving a valid packet from the USB. 1: EP RXFIFO is empty 0: EP RXFIFO is not empty 7 0x0 RW/1C Buffer Not Available (bna): The subsystem sets this bit when the descriptor status is either Host Busy or DMA Done to indicate that the descriptor was not ready at the time the DMA tried to access it. After servicing the interrupt, the application must clear this bit. 6 0x0 RO IN token (in_tok): This is an IN endpoint field only. These bits are reserved and should be set to zero. 5:4 0x0 RW/1C OUT token. (out_tok): An OUT packet has been received by this endpoint. The encoding of these two bits indicates the type of data received. The possible options are: 00: None 01: Received data 10: Received SETUP data (8 bytes) 11: Reserved (The application must write the same values to clear these bits.) 3:0 0x0 RO reserved_3: Reserved bits. These bits are reserved and should be set to zero. OUT Endpoint 0 Receive Packet Frame Number Register (ep0_out_rpf_udc_reg)—Offset 208h This register contains the frame number in which the packet is received. This frame number information is useful when handling isochronous traffic. Access Method Type: Memory Mapped I/O Register (Size: 32 bits) Offset: [BAR0] + 208h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:2] + 10h Default: 00000000h 0 0 0 0 0 0 Bit Range 31:18 Intel® Quark™ SoC X1000 Datasheet 512 Default & Access 0x0 RO 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 0 4 0 0 0 0 0 0 0 0 0 buff_size_frame_number 0 24 reserved 0 28 isoc_data_pid 31 Field Name (ID): Description reserved: Reserved bits. These bits are reserved and should be set to zero. August 2015 Document Number: 329676-005US USB 2.0—Intel® Quark™ SoC X1000 Bit Range Default & Access Field Name (ID): Description 0x0 RO Isochronous OUT Transaction PID (isoc_data_pid): Data PID received for a highbandwidth isochronous OUT transaction. This field indicates that the data PID for the current packet is available in the Receive FIFO. This field is used only in Slave-Only mode. 00: DATA0 PID is received 01: DATA1 PID is received 10: DATA2 PID is received 11: MDATA PID is received 0x0 RO Buffer Size/Frame Number (buff_size_frame_number): Frame number in which the packet is received. For high-speed operation: [15:14] Reserved [13:3] Millisecond frame number [2:0] Microframe number For full-speed operation: [15:11] Reserved [10:0] Millisecond frame number 17:16 15:0 16.6.1.28 OUT Endpoint 0 Buffer Size Register (ep0_out_bufsize_udc_reg)— Offset 20Ch Access Method Type: Memory Mapped I/O Register (Size: 32 bits) Offset: [BAR0] + 20Ch BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:2] + 10h Default: 00000000h 31 0 0 0 24 0 0 0 0 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 Bit Range 16.6.1.29 0 0 0 4 0 0 0 0 0 0 0 0 0 max_pkt_size buff_size 0 28 Default & Access Field Name (ID): Description 31:16 0x0 RW Packet Size (buff_size): Buffer size required for this endpoint. The application can program this field to make each endpoint buffers adaptive, providing flexibility in buffer size when the interface or configuration is changed. This value is in 32-bit words, and indicates the number of 32-bit word entries in the Receive FIFO. This value cannot be changed dynamically during operation. NOTE: the maximum size of the RxFIFO is 512 32-bit word entries. 15:0 0x0 RW Max Packet Size (max_pkt_size): Maximum packet size for the endpoint. This is the value in bytes. This maximum size is used to calculate whether the Transmit FIFO has sufficient space to accept a packet. When changing the maximum packet size for a specific endpoint, the user must also program the corresponding Physical Endpoint Register. OUT Endpoint 0 SETUP Buffer Pointer Register (ep0_subptr_udc_reg)—Offset 210h Access Method August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 513 Intel® Quark™ SoC X1000—USB 2.0 Type: Memory Mapped I/O Register (Size: 32 bits) Offset: [BAR0] + 210h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:2] + 10h Default: 00000000h 31 0 0 0 24 0 0 0 0 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 0 4 0 0 0 0 0 0 0 0 0 subptr 0 28 Bit Range Default & Access Field Name (ID): Description 0x0 RW SETUP Buffer Pointer (subptr): Endpoint SETUP buffer pointers are used for SETUP commands. The Endpoint SETUP Buffer Pointer register is used only in DMA mode. NOTE: This is applicable only to control endpoints. For all other endpoints this register is reserved. 31:0 16.6.1.30 OUT Endpoint 0 Data Descriptor Pointer Register (ep0_out_desptr_udc_reg)—Offset 214h Access Method Type: Memory Mapped I/O Register (Size: 32 bits) Offset: [BAR0] + 214h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:2] + 10h Default: 00000000h 31 0 0 0 24 0 0 0 0 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 0 4 0 0 0 0 0 0 0 0 0 desptr 0 28 Bit Range 31:0 16.6.1.31 Default & Access 0x0 RW Field Name (ID): Description Descriptor Pointer (desptr): This register contains the data descriptor pointer. OUT Endpoint 0 Read Confirmation Register for zero-length OUT data (for Slave-Only mode) (ep0_rd_cfrm_udc_reg)—Offset 21Ch Access Method Type: Memory Mapped I/O Register (Size: 32 bits) Offset: [BAR0] + 21Ch BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:2] + 10h Default: 00000000h Intel® Quark™ SoC X1000 Datasheet 514 August 2015 Document Number: 329676-005US USB 2.0—Intel® Quark™ SoC X1000 31 0 0 0 24 0 0 0 0 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 0 4 0 0 0 0 0 0 0 0 0 rd_cfrm 0 28 Bit Range Default & Access Field Name (ID): Description 0x0 WO Read Confirmation for zero-length OUT data (for Slave-Only mode) (rd_cfrm): For zero-length OUT data, the application must perform a dummy read from this register 31:0 16.6.1.32 OUT Endpoint 1 Control Register (ep1_out_ctrl_udc_reg)—Offset 220h This register is used to program the endpoint as required by the application. Access Method Type: Memory Mapped I/O Register (Size: 32 bits) Offset: [BAR0] + 220h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:2] + 10h Default: 00000000h Bit Range Default & Access 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 s 0 f 0 p 0 0 sn 0 et 0 nak 0 4 snak 0 8 rrdy 0 12 cnak 0 16 null_bit 0 20 mrx_flush 0 24 reserved 0 28 close_desc 31 Field Name (ID): Description 31:13 0x0 RO reserved: Reserved bits. These bits are reserved and should be set to zero. 12 0x0 WO Receive FIFO Flush for Multiple Receive FIFO (mrx_flush): When the application wants to flush the endpoint receive FIFO, it must first set the SNAK bit in the Endpoint Control register. If the receive DMA is in progress, then the core will finish the current descriptor, terminate the DMA, and flush the data in the endpoint receive FIFO and clear this bit. The application must clear this bit after the EP receive FIFO is empty, by checking the MRXFIFO EMPTY bit in the Endpoint Status register. 11 0x0 RO Close Descriptor Channel (close_desc): Close Descriptor Enhancement is not supported. These bits are reserved and should be set to zero. 10 0x0 RO Send Null Packet (null_bit): This is an IN endpoint field only. These bits are reserved and should be set to zero. 0x0 RW Receive Ready (rrdy): If this bit is set by the application, on receiving an OUT packet, the DMA sends the packet to system memory. This bit is deasserted at the end of packet if the Descriptor Update bit is set in the Device Control register. This bit is deasserted at the end of payload if the Descriptor Update bit is deasserted. This bit can be set by the application at any time. The application cannot clear this bit if the DMA is busy transferring the data. 9 August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 515 Intel® Quark™ SoC X1000—USB 2.0 Bit Range Default & Access Field Name (ID): Description 8 0x0 WO Clear NAK (cnak): Used by the application to clear the NAK bit (bit 6). After the subsystem sets bit 6 (NAK), the application must clear it with a write of 1 to the CNAK bit. (For example, after the application has decoded the SETUP packet and determined it is not an invalid command, the application must set the CNAK bit of the control endpoint to 1 to clear the NAK bit.)The application also must clear the NAK bit whenever the subsystem sets it. (The subsystem sets it due to the application setting the Stall bit.)The application can clear this bit only when the RxFIFO is empty (for single RxFIFO implementation) or when the RxFIFO corresponding to the same logical endpoint is empty (Multiple RxFIFO implementation). The application can write CNAK any time without waiting for a RxFIFO empty condition. The NAK bit is cleared immediately upon write to CNAK bit. No polling is necessary. 7 0x0 WO Set NAK. (snak): Used by the application to set the NAK bit (bit 6 of this register). The application must not set the NAK bit for an IN endpoint until it has received an IN token interrupt indicating that the TxFIFO is empty. 6 0x0 RO NAK Handshake Enable (nak): After a SETUP packet, which is decoded by the application, is received by the core, the core sets the NAK bit for all control IN/OUT endpoints. NAK is also set after a STALL response for the endpoint (the STALL bit is set in Endpoint Control register bit 0). 1: The endpoint responds to the USB host with a NAK handshake. 0: The endpoint responds normally. Note 1: A SETUP packet is sent to the application regardless of whether the NAK bit is set. Note 2: The NAK set on ISOC OUT endpoint rejects the ISOC out data packet. 5:4 0x0 RW Endpoint Type (et): Endpoint Type (2-bit). The possible options are: 00: Control endpoint 01: Isochronous endpoint 10: Bulk endpoint 11: Interrupt endpoint 3 0x0 RO Poll Demand (p): This is an IN endpoint field only. These bits are reserved and should be set to zero. 2 0x0 RW Snoop Mode (sn): Configures the endpoint for Snoop mode. In this mode, the subsystem does not check the correctness of OUT packets before transferring them to application memory. 1 0x0 RO Flush TxFIFO (f): This is an IN endpoint field only. These bits are reserved and should be set to zero. 0x0 RW Stall Handshake (s): On successful reception of a SETUP packet (decoded by the application), the subsystem clears both IN and OUT Stall bits, and sets both the IN and OUT NAK bits. The application must check for RxFIFO emptiness before setting the IN and OUT STALL bit. For non-SETUP packets, the subsystem clears either IN or out STALL bits only if a STALL handshake is returned to the USB host, then sets the corresponding NAK bit. The subsystem returns a STALL handshake for the subsequent transactions of the stalled endpoint until the USB host issues a Clear_Feature command to clear it. Once this bit is set, if the subsystem has already returned a STALL handshake to the USB host, the application firmware cannot clear the S bit to stop the subsystem from sending the STALL handshake on the endpoint. The host must instead send one of the following commands to clear the endpoint Halt status: - Clear Feature (Halt) - SetConfiguration - SetInterface. 0 16.6.1.33 OUT Endpoint 1 Status Register (ep1_out_sts_udc_reg)—Offset 224h The Endpoint Status register indicates the endpoint status. Access Method Type: Memory Mapped I/O Register (Size: 32 bits) Offset: [BAR0] + 224h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:2] + 10h Intel® Quark™ SoC X1000 Datasheet 516 August 2015 Document Number: 329676-005US USB 2.0—Intel® Quark™ SoC X1000 Default: 00000100h Default & Access 0 0 0 12 0 0 0 0 8 0 0 4 0 1 0 0 0 0 0 0 0 0 0 reserved_3 16 0 out_tok 0 bna 0 in_tok tx_fifo_empty isoc_xfer_done Bit Range 0 he 0 mrxfifo_empty 0 tdc 0 rx_pkt_size 0 clr_feature_halt 20 0 set_feature_halt 0 24 0 cdc 28 0 reserved_1 0 xfer_done_txf_empty 31 Field Name (ID): Description 31:29 0x0 RO reserved_1: Reserved bits. These bits are reserved and should be set to zero. 28 0x0 RO Close Descriptor Channel (cdc): Close Descriptor Enhancement is not supported. These bits are reserved and should be set to zero. 27 0x0 RO Transfer Done/Transmit FIFO Empty (xfer_done_txf_empty): This is an IN endpoint field only. These bits are reserved and should be set to zero. 0x0 RW/1C Received Set Halt (set_feature_halt): This bit indicates that the Set Feature (EP HALT) command is received for this endpoint .To stall this endpoint, the application can set the S bit in Endpoint Control Register. After this, the application clears this RSS bit to acknowledge the reception of Set Feature sta command. Once this RSS bit is cleared, core sends the zero-length packet for the Status IN phase of Set Feature command. Received Set Stall indication is applicable only for Bulk and Interrupt transactions. 25 0x0 RW/1C Received Clear Halt (clr_feature_halt): This bit indicates that the Clear Feature (EP HALT) command is received for this endpoint. To continue to stall the endpoint, the application must set the S bit Endpoint Control Register. After this, the application clears this RCS bit to acknowledge the reception of clear stall command. Once this bit is cleared, core sends the zero-length packet for the Status IN phase of clear stall command. Received Clear Stall indication is applicable only for Bulk and Interrupt transactions. 24 0x0 RO Transmit FIFO Empty detected (tx_fifo_empty): This is an IN endpoint field only. These bits are reserved and should be set to zero. 23 0x0 RO Isochronous IN transaction complete (isoc_xfer_done): This is an IN endpoint field only. These bits are reserved and should be set to zero. 22:11 0x0 RW Receive Packet Size (rx_pkt_size): Indicates the number of bytes in the current receive packet the RxFIFO is receiving. Because the USB host always sends 8 bytes of SETUP data, these bits do not indicate the receipt of 8 bytes of SETUP data for a SETUP packet. Rather, these bits indicate the configuration status (Configuration number [22:19], Interface number [18:15], and Alternate Setting number [14:11]). This field is used in slave mode only. In DMA mode, the application must check the status from the endpoint data descriptor. 10 0x0 RO Transmit DMA Completion (tdc): This is an IN endpoint field only. These bits are reserved and should be set to zero. 0x0 RW/1C System Host Error (he): Error response on the host bus (AHB) when doing a data transfer, descriptor fetch, or descriptor update for this particular endpoint. After servicing the interrupt, the application must clear this bit. 26 9 8 1h RO August 2015 Document Number: 329676-005US Receive Address FIFO Empty Status (mrxfifo_empty): This bit indicates the empty status of the endpoint receive address FIFO. This bit is set by the core after the DMA transfers data to system memory, and there are no new packets received from the USB. This bit is cleared by the core after receiving a valid packet from the USB. 1: EP RXFIFO is empty 0: EP RXFIFO is not empty Intel® Quark™ SoC X1000 Datasheet 517 Intel® Quark™ SoC X1000—USB 2.0 Bit Range 16.6.1.34 Default & Access Field Name (ID): Description 7 0x0 RW/1C Buffer Not Available (bna): The subsystem sets this bit when the descriptor status is either Host Busy or DMA Done to indicate that the descriptor was not ready at the time the DMA tried to access it. After servicing the interrupt, the application must clear this bit. 6 0x0 RO IN token (in_tok): This is an IN endpoint field only. These bits are reserved and should be set to zero. 5:4 0x0 RW/1C OUT token. (out_tok): An OUT packet has been received by this endpoint. The encoding of these two bits indicates the type of data received. The possible options are: 00: None 01: Received data 10: Received SETUP data (8 bytes) 11: Reserved (The application must write the same values to clear these bits.) 3:0 0x0 RO reserved_3: Reserved bits. These bits are reserved and should be set to zero. OUT Endpoint 1 Receive Packet Frame Number Register (ep1_out_rpf_udc_reg)—Offset 228h This register contains the frame number in which the packet is received. This frame number information is useful when handling isochronous traffic. Access Method Type: Memory Mapped I/O Register (Size: 32 bits) Offset: [BAR0] + 228h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:2] + 10h Default: 00000000h 0 0 0 0 0 0 Bit Range 31:18 17:16 Intel® Quark™ SoC X1000 Datasheet 518 Default & Access 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 0 4 0 0 0 0 0 0 0 0 0 buff_size_frame_number 0 24 reserved 0 28 isoc_data_pid 31 Field Name (ID): Description 0x0 RO reserved: Reserved bits. These bits are reserved and should be set to zero. 0x0 RO Isochronous OUT Transaction PID (isoc_data_pid): Data PID received for a highbandwidth isochronous OUT transaction. This field indicates that the data PID for the current packet is available in the Receive FIFO. This field is used only in Slave-Only mode. 00: DATA0 PID is received 01: DATA1 PID is received 10: DATA2 PID is received 11: MDATA PID is received August 2015 Document Number: 329676-005US USB 2.0—Intel® Quark™ SoC X1000 Bit Range Default & Access 16.6.1.35 Buffer Size/Frame Number (buff_size_frame_number): Frame number in which the packet is received. For high-speed operation: [15:14] Reserved [13:3] Millisecond frame number [2:0] Microframe number For full-speed operation: [15:11] Reserved [10:0] Millisecond frame number 0x0 RO 15:0 Field Name (ID): Description OUT Endpoint 1 Buffer Size Register (ep1_out_bufsize_udc_reg)— Offset 22Ch Access Method Type: Memory Mapped I/O Register (Size: 32 bits) Offset: [BAR0] + 22Ch BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:2] + 10h Default: 00000000h 28 0 0 0 24 0 0 0 0 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 buff_size 0 Bit Range 16.6.1.36 0 0 0 4 0 0 0 0 0 0 0 0 0 max_pkt_size 31 Default & Access Field Name (ID): Description 31:16 0x0 RW Packet Size (buff_size): Buffer size required for this endpoint. The application can program this field to make each endpoint buffers adaptive, providing flexibility in buffer size when the interface or configuration is changed. This value is in 32-bit words, and indicates the number of 32-bit word entries in the Receive FIFO. This value cannot be changed dynamically during operation. NOTE: the maximum size of the RxFIFO is 512 32-bit word entries. 15:0 0x0 RW Max Packet Size (max_pkt_size): Maximum packet size for the endpoint. This is the value in bytes. This maximum size is used to calculate whether the Transmit FIFO has sufficient space to accept a packet. When changing the maximum packet size for a specific endpoint, the user must also program the corresponding Physical Endpoint Register. OUT Endpoint 1 SETUP Buffer Pointer Register (ep1_subptr_udc_reg)—Offset 230h Access Method Type: Memory Mapped I/O Register (Size: 32 bits) Offset: [BAR0] + 230h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:2] + 10h Default: 00000000h August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 519 Intel® Quark™ SoC X1000—USB 2.0 31 0 0 0 24 0 0 0 0 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 0 4 0 0 0 0 0 0 0 0 0 subptr 0 28 Bit Range Default & Access Field Name (ID): Description 0x0 RW SETUP Buffer Pointer (subptr): Endpoint SETUP buffer pointers are used for SETUP commands. The Endpoint SETUP Buffer Pointer register is used only in DMA mode. NOTE: This is applicable only to control endpoints. For all other endpoints this register is reserved. 31:0 16.6.1.37 OUT Endpoint 1 Data Descriptor Pointer Register (ep1_out_desptr_udc_reg)—Offset 234h Access Method Type: Memory Mapped I/O Register (Size: 32 bits) Offset: [BAR0] + 234h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:2] + 10h Default: 00000000h 31 0 0 0 24 0 0 0 0 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 0 4 0 0 0 0 0 0 0 0 0 desptr 0 28 Bit Range Default & Access 0x0 RW 31:0 16.6.1.38 Field Name (ID): Description Descriptor Pointer (desptr): This register contains the data descriptor pointer. OUT Endpoint 1 Read Confirmation Register for zero-length OUT data (for Slave-Only mode) (ep1_rd_cfrm_udc_reg)—Offset 23Ch Access Method Type: Memory Mapped I/O Register (Size: 32 bits) Offset: [BAR0] + 23Ch BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:2] + 10h Default: 00000000h 31 0 0 0 24 0 0 0 0 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 0 4 0 0 0 0 0 0 0 0 0 rd_cfrm 0 28 Intel® Quark™ SoC X1000 Datasheet 520 August 2015 Document Number: 329676-005US USB 2.0—Intel® Quark™ SoC X1000 Bit Range Default & Access Field Name (ID): Description 0x0 WO Read Confirmation for zero-length OUT data (for Slave-Only mode) (rd_cfrm): For zero-length OUT data, the application must perform a dummy read from this register 31:0 16.6.1.39 OUT Endpoint 2 Control Register (ep2_out_ctrl_udc_reg)—Offset 240h This register is used to program the endpoint as required by the application. Access Method Type: Memory Mapped I/O Register (Size: 32 bits) Offset: [BAR0] + 240h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:2] + 10h Default: 00000000h Bit Range Default & Access 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 s 0 f 0 p 0 0 sn 0 et 0 nak 0 4 snak 0 8 rrdy 0 12 cnak 0 16 null_bit 0 20 mrx_flush 0 24 reserved 0 28 close_desc 31 Field Name (ID): Description 31:13 0x0 RO reserved: Reserved bits. These bits are reserved and should be set to zero. 12 0x0 WO Receive FIFO Flush for Multiple Receive FIFO (mrx_flush): When the application wants to flush the endpoint receive FIFO, it must first set the SNAK bit in the Endpoint Control register. If the receive DMA is in progress, then the core will finish the current descriptor, terminate the DMA, and flush the data in the endpoint receive FIFO and clear this bit. The application must clear this bit after the EP receive FIFO is empty, by checking the MRXFIFO EMPTY bit in the Endpoint Status register. 11 0x0 RO Close Descriptor Channel (close_desc): Close Descriptor Enhancement is not supported. These bits are reserved and should be set to zero. 10 0x0 RO Send Null Packet (null_bit): This is an IN endpoint field only. These bits are reserved and should be set to zero. 0x0 RW Receive Ready (rrdy): If this bit is set by the application, on receiving an OUT packet, the DMA sends the packet to system memory. This bit is deasserted at the end of packet if the Descriptor Update bit is set in the Device Control register. This bit is deasserted at the end of payload if the Descriptor Update bit is deasserted. This bit can be set by the application at any time. The application cannot clear this bit if the DMA is busy transferring the data. 0x0 WO Clear NAK (cnak): Used by the application to clear the NAK bit (bit 6). After the subsystem sets bit 6 (NAK), the application must clear it with a write of 1 to the CNAK bit. (For example, after the application has decoded the SETUP packet and determined it is not an invalid command, the application must set the CNAK bit of the control endpoint to 1 to clear the NAK bit.)The application also must clear the NAK bit whenever the subsystem sets it. (The subsystem sets it due to the application setting the Stall bit.)The application can clear this bit only when the RxFIFO is empty (for single RxFIFO implementation) or when the RxFIFO corresponding to the same logical endpoint is empty (Multiple RxFIFO implementation). The application can write CNAK any time without waiting for a RxFIFO empty condition. The NAK bit is cleared immediately upon write to CNAK bit. No polling is necessary. 9 8 August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 521 Intel® Quark™ SoC X1000—USB 2.0 Bit Range Default & Access Field Name (ID): Description 0x0 WO Set NAK. (snak): Used by the application to set the NAK bit (bit 6 of this register). The application must not set the NAK bit for an IN endpoint until it has received an IN token interrupt indicating that the TxFIFO is empty. 6 0x0 RO NAK Handshake Enable (nak): After a SETUP packet, which is decoded by the application, is received by the core, the core sets the NAK bit for all control IN/OUT endpoints. NAK is also set after a STALL response for the endpoint (the STALL bit is set in Endpoint Control register bit 0). 1: The endpoint responds to the USB host with a NAK handshake. 0: The endpoint responds normally. Note 1: A SETUP packet is sent to the application regardless of whether the NAK bit is set. Note 2: The NAK set on ISOC OUT endpoint rejects the ISOC out data packet. 5:4 0x0 RW Endpoint Type (et): Endpoint Type (2-bit). The possible options are: 00: Control endpoint 01: Isochronous endpoint 10: Bulk endpoint 11: Interrupt endpoint 3 0x0 RO Poll Demand (p): This is an IN endpoint field only. These bits are reserved and should be set to zero. 2 0x0 RW Snoop Mode (sn): Configures the endpoint for Snoop mode. In this mode, the subsystem does not check the correctness of OUT packets before transferring them to application memory. 1 0x0 RO Flush TxFIFO (f): This is an IN endpoint field only. These bits are reserved and should be set to zero. 0x0 RW Stall Handshake (s): On successful reception of a SETUP packet (decoded by the application), the subsystem clears both IN and OUT Stall bits, and sets both the IN and OUT NAK bits. The application must check for RxFIFO emptiness before setting the IN and OUT STALL bit. For non-SETUP packets, the subsystem clears either IN or out STALL bits only if a STALL handshake is returned to the USB host, then sets the corresponding NAK bit. The subsystem returns a STALL handshake for the subsequent transactions of the stalled endpoint until the USB host issues a Clear_Feature command to clear it. Once this bit is set, if the subsystem has already returned a STALL handshake to the USB host, the application firmware cannot clear the S bit to stop the subsystem from sending the STALL handshake on the endpoint. The host must instead send one of the following commands to clear the endpoint Halt status: - Clear Feature (Halt) - SetConfiguration - SetInterface. 7 0 16.6.1.40 OUT Endpoint 2 Status Register (ep2_out_sts_udc_reg)—Offset 244h The Endpoint Status register indicates the endpoint status. Access Method Type: Memory Mapped I/O Register (Size: 32 bits) Offset: [BAR0] + 244h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:2] + 10h Default: 00000100h Intel® Quark™ SoC X1000 Datasheet 522 August 2015 Document Number: 329676-005US USB 2.0—Intel® Quark™ SoC X1000 Default & Access 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 reserved_3 0 out_tok tx_fifo_empty isoc_xfer_done Bit Range 0 bna 0 in_tok 0 4 he 0 8 mrxfifo_empty 0 12 tdc 0 16 rx_pkt_size 0 clr_feature_halt 20 set_feature_halt 0 24 cdc 0 reserved_1 0 28 xfer_done_txf_empty 31 Field Name (ID): Description 31:29 0x0 RO reserved_1: Reserved bits. These bits are reserved and should be set to zero. 28 0x0 RO Close Descriptor Channel (cdc): Close Descriptor Enhancement is not supported. These bits are reserved and should be set to zero. 27 0x0 RO Transfer Done/Transmit FIFO Empty (xfer_done_txf_empty): This is an IN endpoint field only. These bits are reserved and should be set to zero. 0x0 RW/1C Received Set Halt (set_feature_halt): This bit indicates that the Set Feature (EP HALT) command is received for this endpoint .To stall this endpoint, the application can set the S bit in Endpoint Control Register. After this, the application clears this RSS bit to acknowledge the reception of Set Feature sta command. Once this RSS bit is cleared, core sends the zero-length packet for the Status IN phase of Set Feature command. Received Set Stall indication is applicable only for Bulk and Interrupt transactions. 25 0x0 RW/1C Received Clear Halt (clr_feature_halt): This bit indicates that the Clear Feature (EP HALT) command is received for this endpoint. To continue to stall the endpoint, the application must set the S bit Endpoint Control Register. After this, the application clears this RCS bit to acknowledge the reception of clear stall command. Once this bit is cleared, core sends the zero-length packet for the Status IN phase of clear stall command. Received Clear Stall indication is applicable only for Bulk and Interrupt transactions. 24 0x0 RO Transmit FIFO Empty detected (tx_fifo_empty): This is an IN endpoint field only. These bits are reserved and should be set to zero. 23 0x0 RO Isochronous IN transaction complete (isoc_xfer_done): This is an IN endpoint field only. These bits are reserved and should be set to zero. 22:11 0x0 RW Receive Packet Size (rx_pkt_size): Indicates the number of bytes in the current receive packet the RxFIFO is receiving. Because the USB host always sends 8 bytes of SETUP data, these bits do not indicate the receipt of 8 bytes of SETUP data for a SETUP packet. Rather, these bits indicate the configuration status (Configuration number [22:19], Interface number [18:15], and Alternate Setting number [14:11]). This field is used in slave mode only. In DMA mode, the application must check the status from the endpoint data descriptor. 10 0x0 RO Transmit DMA Completion (tdc): This is an IN endpoint field only. These bits are reserved and should be set to zero. 0x0 RW/1C System Host Error (he): Error response on the host bus (AHB) when doing a data transfer, descriptor fetch, or descriptor update for this particular endpoint. After servicing the interrupt, the application must clear this bit. 26 9 8 1h RO Receive Address FIFO Empty Status (mrxfifo_empty): This bit indicates the empty status of the endpoint receive address FIFO. This bit is set by the core after the DMA transfers data to system memory, and there are no new packets received from the USB. This bit is cleared by the core after receiving a valid packet from the USB. 1: EP RXFIFO is empty 0: EP RXFIFO is not empty 7 0x0 RW/1C Buffer Not Available (bna): The subsystem sets this bit when the descriptor status is either Host Busy or DMA Done to indicate that the descriptor was not ready at the time the DMA tried to access it. After servicing the interrupt, the application must clear this bit. August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 523 Intel® Quark™ SoC X1000—USB 2.0 Bit Range Default & Access 0x0 RO IN token (in_tok): This is an IN endpoint field only. These bits are reserved and should be set to zero. 5:4 0x0 RW/1C OUT token. (out_tok): An OUT packet has been received by this endpoint. The encoding of these two bits indicates the type of data received. The possible options are: 00: None 01: Received data 10: Received SETUP data (8 bytes) 11: Reserved (The application must write the same values to clear these bits.) 3:0 0x0 RO 6 16.6.1.41 Field Name (ID): Description reserved_3: Reserved bits. These bits are reserved and should be set to zero. OUT Endpoint 2 Receive Packet Frame Number Register (ep2_out_rpf_udc_reg)—Offset 248h This register contains the frame number in which the packet is received. This frame number information is useful when handling isochronous traffic. Access Method Type: Memory Mapped I/O Register (Size: 32 bits) Offset: [BAR0] + 248h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:2] + 10h Default: 00000000h 0 0 0 0 0 0 Bit Range 31:18 17:16 Intel® Quark™ SoC X1000 Datasheet 524 Default & Access 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 0 4 0 0 0 0 0 0 0 0 0 buff_size_frame_number 0 24 reserved 0 28 isoc_data_pid 31 Field Name (ID): Description 0x0 RO reserved: Reserved bits. These bits are reserved and should be set to zero. 0x0 RO Isochronous OUT Transaction PID (isoc_data_pid): Data PID received for a highbandwidth isochronous OUT transaction. This field indicates that the data PID for the current packet is available in the Receive FIFO. This field is used only in Slave-Only mode. 00: DATA0 PID is received 01: DATA1 PID is received 10: DATA2 PID is received 11: MDATA PID is received August 2015 Document Number: 329676-005US USB 2.0—Intel® Quark™ SoC X1000 Bit Range Default & Access 16.6.1.42 Buffer Size/Frame Number (buff_size_frame_number): Frame number in which the packet is received. For high-speed operation: [15:14] Reserved [13:3] Millisecond frame number [2:0] Microframe number For full-speed operation: [15:11] Reserved [10:0] Millisecond frame number 0x0 RO 15:0 Field Name (ID): Description OUT Endpoint 2 Buffer Size Register (ep2_out_bufsize_udc_reg)— Offset 24Ch Access Method Type: Memory Mapped I/O Register (Size: 32 bits) Offset: [BAR0] + 24Ch BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:2] + 10h Default: 00000000h 28 0 0 0 24 0 0 0 0 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 buff_size 0 Bit Range 16.6.1.43 0 0 0 4 0 0 0 0 0 0 0 0 0 max_pkt_size 31 Default & Access Field Name (ID): Description 31:16 0x0 RW Packet Size (buff_size): Buffer size required for this endpoint. The application can program this field to make each endpoint buffers adaptive, providing flexibility in buffer size when the interface or configuration is changed. This value is in 32-bit words, and indicates the number of 32-bit word entries in the Receive FIFO. This value cannot be changed dynamically during operation. NOTE: the maximum size of the RxFIFO is 512 32-bit word entries. 15:0 0x0 RW Max Packet Size (max_pkt_size): Maximum packet size for the endpoint. This is the value in bytes. This maximum size is used to calculate whether the Transmit FIFO has sufficient space to accept a packet. When changing the maximum packet size for a specific endpoint, the user must also program the corresponding Physical Endpoint Register. OUT Endpoint 2 SETUP Buffer Pointer Register (ep2_subptr_udc_reg)—Offset 250h Access Method Type: Memory Mapped I/O Register (Size: 32 bits) Offset: [BAR0] + 250h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:2] + 10h Default: 00000000h August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 525 Intel® Quark™ SoC X1000—USB 2.0 31 0 0 0 24 0 0 0 0 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 0 4 0 0 0 0 0 0 0 0 0 subptr 0 28 Bit Range Default & Access Field Name (ID): Description 0x0 RW SETUP Buffer Pointer (subptr): Endpoint SETUP buffer pointers are used for SETUP commands. The Endpoint SETUP Buffer Pointer register is used only in DMA mode. NOTE: This is applicable only to control endpoints. For all other endpoints this register is reserved. 31:0 16.6.1.44 OUT Endpoint 2 Data Descriptor Pointer Register (ep2_out_desptr_udc_reg)—Offset 254h Access Method Type: Memory Mapped I/O Register (Size: 32 bits) Offset: [BAR0] + 254h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:2] + 10h Default: 00000000h 31 0 0 0 24 0 0 0 0 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 0 4 0 0 0 0 0 0 0 0 0 desptr 0 28 Bit Range Default & Access 0x0 RW 31:0 16.6.1.45 Field Name (ID): Description Descriptor Pointer (desptr): This register contains the data descriptor pointer. OUT Endpoint 2 Read Confirmation Register for zero-length OUT data (for Slave-Only mode) (ep2_rd_cfrm_udc_reg)—Offset 25Ch Access Method Type: Memory Mapped I/O Register (Size: 32 bits) Offset: [BAR0] + 25Ch BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:2] + 10h Default: 00000000h 31 0 0 0 24 0 0 0 0 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 0 4 0 0 0 0 0 0 0 0 0 rd_cfrm 0 28 Intel® Quark™ SoC X1000 Datasheet 526 August 2015 Document Number: 329676-005US USB 2.0—Intel® Quark™ SoC X1000 Bit Range Default & Access Field Name (ID): Description 0x0 WO Read Confirmation for zero-length OUT data (for Slave-Only mode) (rd_cfrm): For zero-length OUT data, the application must perform a dummy read from this register 31:0 16.6.1.46 OUT Endpoint 3 Control Register (ep3_out_ctrl_udc_reg)—Offset 260h This register is used to program the endpoint as required by the application. Access Method Type: Memory Mapped I/O Register (Size: 32 bits) Offset: [BAR0] + 260h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:2] + 10h Default: 00000000h Bit Range Default & Access 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 s 0 f 0 p 0 0 sn 0 et 0 nak 0 4 snak 0 8 rrdy 0 12 cnak 0 16 null_bit 0 20 mrx_flush 0 24 reserved 0 28 close_desc 31 Field Name (ID): Description 31:13 0x0 RO reserved: Reserved bits. These bits are reserved and should be set to zero. 12 0x0 WO Receive FIFO Flush for Multiple Receive FIFO (mrx_flush): When the application wants to flush the endpoint receive FIFO, it must first set the SNAK bit in the Endpoint Control register. If the receive DMA is in progress, then the core will finish the current descriptor, terminate the DMA, and flush the data in the endpoint receive FIFO and clear this bit. The application must clear this bit after the EP receive FIFO is empty, by checking the MRXFIFO EMPTY bit in the Endpoint Status register. 11 0x0 RO Close Descriptor Channel (close_desc): Close Descriptor Enhancement is not supported. These bits are reserved and should be set to zero. 10 0x0 RO Send Null Packet (null_bit): This is an IN endpoint field only. These bits are reserved and should be set to zero. 0x0 RW Receive Ready (rrdy): If this bit is set by the application, on receiving an OUT packet, the DMA sends the packet to system memory. This bit is deasserted at the end of packet if the Descriptor Update bit is set in the Device Control register. This bit is deasserted at the end of payload if the Descriptor Update bit is deasserted. This bit can be set by the application at any time. The application cannot clear this bit if the DMA is busy transferring the data. 0x0 WO Clear NAK (cnak): Used by the application to clear the NAK bit (bit 6). After the subsystem sets bit 6 (NAK), the application must clear it with a write of 1 to the CNAK bit. (For example, after the application has decoded the SETUP packet and determined it is not an invalid command, the application must set the CNAK bit of the control endpoint to 1 to clear the NAK bit.)The application also must clear the NAK bit whenever the subsystem sets it. (The subsystem sets it due to the application setting the Stall bit.)The application can clear this bit only when the RxFIFO is empty (for single RxFIFO implementation) or when the RxFIFO corresponding to the same logical endpoint is empty (Multiple RxFIFO implementation). The application can write CNAK any time without waiting for a RxFIFO empty condition. The NAK bit is cleared immediately upon write to CNAK bit. No polling is necessary. 9 8 August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 527 Intel® Quark™ SoC X1000—USB 2.0 Bit Range Default & Access Field Name (ID): Description 0x0 WO Set NAK. (snak): Used by the application to set the NAK bit (bit 6 of this register). The application must not set the NAK bit for an IN endpoint until it has received an IN token interrupt indicating that the TxFIFO is empty. 6 0x0 RO NAK Handshake Enable (nak): After a SETUP packet, which is decoded by the application, is received by the core, the core sets the NAK bit for all control IN/OUT endpoints. NAK is also set after a STALL response for the endpoint (the STALL bit is set in Endpoint Control register bit 0). 1: The endpoint responds to the USB host with a NAK handshake. 0: The endpoint responds normally. Note 1: A SETUP packet is sent to the application regardless of whether the NAK bit is set. Note 2: The NAK set on ISOC OUT endpoint rejects the ISOC out data packet. 5:4 0x0 RW Endpoint Type (et): Endpoint Type (2-bit). The possible options are: 00: Control endpoint 01: Isochronous endpoint 10: Bulk endpoint 11: Interrupt endpoint 3 0x0 RO Poll Demand (p): This is an IN endpoint field only. These bits are reserved and should be set to zero. 2 0x0 RW Snoop Mode (sn): Configures the endpoint for Snoop mode. In this mode, the subsystem does not check the correctness of OUT packets before transferring them to application memory. 1 0x0 RO Flush TxFIFO (f): This is an IN endpoint field only. These bits are reserved and should be set to zero. 0x0 RW Stall Handshake (s): On successful reception of a SETUP packet (decoded by the application), the subsystem clears both IN and OUT Stall bits, and sets both the IN and OUT NAK bits. The application must check for RxFIFO emptiness before setting the IN and OUT STALL bit. For non-SETUP packets, the subsystem clears either IN or out STALL bits only if a STALL handshake is returned to the USB host, then sets the corresponding NAK bit. The subsystem returns a STALL handshake for the subsequent transactions of the stalled endpoint until the USB host issues a Clear_Feature command to clear it. Once this bit is set, if the subsystem has already returned a STALL handshake to the USB host, the application firmware cannot clear the S bit to stop the subsystem from sending the STALL handshake on the endpoint. The host must instead send one of the following commands to clear the endpoint Halt status: - Clear Feature (Halt) - SetConfiguration - SetInterface. 7 0 16.6.1.47 OUT Endpoint 3 Status Register (ep3_out_sts_udc_reg)—Offset 264h The Endpoint Status register indicates the endpoint status. Access Method Type: Memory Mapped I/O Register (Size: 32 bits) Offset: [BAR0] + 264h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:2] + 10h Default: 00000100h Intel® Quark™ SoC X1000 Datasheet 528 August 2015 Document Number: 329676-005US USB 2.0—Intel® Quark™ SoC X1000 Default & Access 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 reserved_3 0 out_tok tx_fifo_empty isoc_xfer_done Bit Range 0 bna 0 in_tok 0 4 he 0 8 mrxfifo_empty 0 12 tdc 0 16 rx_pkt_size 0 clr_feature_halt 20 set_feature_halt 0 24 cdc 0 reserved_1 0 28 xfer_done_txf_empty 31 Field Name (ID): Description 31:29 0x0 RO reserved_1: Reserved bits. These bits are reserved and should be set to zero. 28 0x0 RO Close Descriptor Channel (cdc): Close Descriptor Enhancement is not supported. These bits are reserved and should be set to zero. 27 0x0 RO Transfer Done/Transmit FIFO Empty (xfer_done_txf_empty): This is an IN endpoint field only. These bits are reserved and should be set to zero. 0x0 RW/1C Received Set Halt (set_feature_halt): This bit indicates that the Set Feature (EP HALT) command is received for this endpoint .To stall this endpoint, the application can set the S bit in Endpoint Control Register. After this, the application clears this RSS bit to acknowledge the reception of Set Feature sta command. Once this RSS bit is cleared, core sends the zero-length packet for the Status IN phase of Set Feature command. Received Set Stall indication is applicable only for Bulk and Interrupt transactions. 25 0x0 RW/1C Received Clear Halt (clr_feature_halt): This bit indicates that the Clear Feature (EP HALT) command is received for this endpoint. To continue to stall the endpoint, the application must set the S bit Endpoint Control Register. After this, the application clears this RCS bit to acknowledge the reception of clear stall command. Once this bit is cleared, core sends the zero-length packet for the Status IN phase of clear stall command. Received Clear Stall indication is applicable only for Bulk and Interrupt transactions. 24 0x0 RO Transmit FIFO Empty detected (tx_fifo_empty): This is an IN endpoint field only. These bits are reserved and should be set to zero. 23 0x0 RO Isochronous IN transaction complete (isoc_xfer_done): This is an IN endpoint field only. These bits are reserved and should be set to zero. 22:11 0x0 RW Receive Packet Size (rx_pkt_size): Indicates the number of bytes in the current receive packet the RxFIFO is receiving. Because the USB host always sends 8 bytes of SETUP data, these bits do not indicate the receipt of 8 bytes of SETUP data for a SETUP packet. Rather, these bits indicate the configuration status (Configuration number [22:19], Interface number [18:15], and Alternate Setting number [14:11]). This field is used in slave mode only. In DMA mode, the application must check the status from the endpoint data descriptor. 10 0x0 RO Transmit DMA Completion (tdc): This is an IN endpoint field only. These bits are reserved and should be set to zero. 0x0 RW/1C System Host Error (he): Error response on the host bus (AHB) when doing a data transfer, descriptor fetch, or descriptor update for this particular endpoint. After servicing the interrupt, the application must clear this bit. 26 9 8 1h RO Receive Address FIFO Empty Status (mrxfifo_empty): This bit indicates the empty status of the endpoint receive address FIFO. This bit is set by the core after the DMA transfers data to system memory, and there are no new packets received from the USB. This bit is cleared by the core after receiving a valid packet from the USB. 1: EP RXFIFO is empty 0: EP RXFIFO is not empty 7 0x0 RW/1C Buffer Not Available (bna): The subsystem sets this bit when the descriptor status is either Host Busy or DMA Done to indicate that the descriptor was not ready at the time the DMA tried to access it. After servicing the interrupt, the application must clear this bit. August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 529 Intel® Quark™ SoC X1000—USB 2.0 Bit Range Default & Access 0x0 RO IN token (in_tok): This is an IN endpoint field only. These bits are reserved and should be set to zero. 5:4 0x0 RW/1C OUT token. (out_tok): An OUT packet has been received by this endpoint. The encoding of these two bits indicates the type of data received. The possible options are: 00: None 01: Received data 10: Received SETUP data (8 bytes) 11: Reserved (The application must write the same values to clear these bits.) 3:0 0x0 RO 6 16.6.1.48 Field Name (ID): Description reserved_3: Reserved bits. These bits are reserved and should be set to zero. OUT Endpoint 3 Receive Packet Frame Number Register (ep3_out_rpf_udc_reg)—Offset 268h This register contains the frame number in which the packet is received. This frame number information is useful when handling isochronous traffic. Access Method Type: Memory Mapped I/O Register (Size: 32 bits) Offset: [BAR0] + 268h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:2] + 10h Default: 00000000h 0 0 0 0 0 0 Bit Range 31:18 17:16 Intel® Quark™ SoC X1000 Datasheet 530 Default & Access 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 0 4 0 0 0 0 0 0 0 0 0 buff_size_frame_number 0 24 reserved 0 28 isoc_data_pid 31 Field Name (ID): Description 0x0 RO reserved: Reserved bits. These bits are reserved and should be set to zero. 0x0 RO Isochronous OUT Transaction PID (isoc_data_pid): Data PID received for a highbandwidth isochronous OUT transaction. This field indicates that the data PID for the current packet is available in the Receive FIFO. This field is used only in Slave-Only mode. 00: DATA0 PID is received 01: DATA1 PID is received 10: DATA2 PID is received 11: MDATA PID is received August 2015 Document Number: 329676-005US USB 2.0—Intel® Quark™ SoC X1000 Bit Range Default & Access 16.6.1.49 Buffer Size/Frame Number (buff_size_frame_number): Frame number in which the packet is received. For high-speed operation: [15:14] Reserved [13:3] Millisecond frame number [2:0] Microframe number For full-speed operation: [15:11] Reserved [10:0] Millisecond frame number 0x0 RO 15:0 Field Name (ID): Description OUT Endpoint 3 Buffer Size Register (ep3_out_bufsize_udc_reg)— Offset 26Ch Access Method Type: Memory Mapped I/O Register (Size: 32 bits) Offset: [BAR0] + 26Ch BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:2] + 10h Default: 00000000h 28 0 0 0 24 0 0 0 0 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 buff_size 0 Bit Range 16.6.1.50 0 0 0 4 0 0 0 0 0 0 0 0 0 max_pkt_size 31 Default & Access Field Name (ID): Description 31:16 0x0 RW Packet Size (buff_size): Buffer size required for this endpoint. The application can program this field to make each endpoint buffers adaptive, providing flexibility in buffer size when the interface or configuration is changed. This value is in 32-bit words, and indicates the number of 32-bit word entries in the Receive FIFO. This value cannot be changed dynamically during operation. NOTE: the maximum size of the RxFIFO is 512 32-bit word entries. 15:0 0x0 RW Max Packet Size (max_pkt_size): Maximum packet size for the endpoint. This is the value in bytes. This maximum size is used to calculate whether the Transmit FIFO has sufficient space to accept a packet. When changing the maximum packet size for a specific endpoint, the user must also program the corresponding Physical Endpoint Register. OUT Endpoint 3 SETUP Buffer Pointer Register (ep3_subptr_udc_reg)—Offset 270h Access Method Type: Memory Mapped I/O Register (Size: 32 bits) Offset: [BAR0] + 270h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:2] + 10h Default: 00000000h August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 531 Intel® Quark™ SoC X1000—USB 2.0 31 0 0 0 24 0 0 0 0 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 0 4 0 0 0 0 0 0 0 0 0 subptr 0 28 Bit Range Default & Access Field Name (ID): Description 0x0 RW SETUP Buffer Pointer (subptr): Endpoint SETUP buffer pointers are used for SETUP commands. The Endpoint SETUP Buffer Pointer register is used only in DMA mode. NOTE: This is applicable only to control endpoints. For all other endpoints this register is reserved. 31:0 16.6.1.51 OUT Endpoint 3 Data Descriptor Pointer Register (ep3_out_desptr_udc_reg)—Offset 274h Access Method Type: Memory Mapped I/O Register (Size: 32 bits) Offset: [BAR0] + 274h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:2] + 10h Default: 00000000h 31 0 0 0 24 0 0 0 0 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 0 4 0 0 0 0 0 0 0 0 0 desptr 0 28 Bit Range Default & Access 0x0 RW 31:0 16.6.1.52 Field Name (ID): Description Descriptor Pointer (desptr): This register contains the data descriptor pointer. OUT Endpoint 3 Read Confirmation Register for zero-length OUT data (for Slave-Only mode) (ep3_rd_cfrm_udc_reg)—Offset 27Ch Access Method Type: Memory Mapped I/O Register (Size: 32 bits) Offset: [BAR0] + 27Ch BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:2] + 10h Default: 00000000h 31 0 0 0 24 0 0 0 0 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 0 4 0 0 0 0 0 0 0 0 0 rd_cfrm 0 28 Intel® Quark™ SoC X1000 Datasheet 532 August 2015 Document Number: 329676-005US USB 2.0—Intel® Quark™ SoC X1000 Bit Range Default & Access Field Name (ID): Description 0x0 WO Read Confirmation for zero-length OUT data (for Slave-Only mode) (rd_cfrm): For zero-length OUT data, the application must perform a dummy read from this register 31:0 16.6.1.53 Device Configuration Register (d_cfg_udc_reg)—Offset 400h This register configures the device. It is only set during initial configuration or when there is a change in the configuration. Access Method Type: Memory Mapped I/O Register (Size: 32 bits) Offset: [BAR0] + 400h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:2] + 10h Default: 00000020h Bit Range Default & Access 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 spd 0 sp 0 0 rwkp 0 pi 0 ss 0 dir 0 status 0 status_1 0 4 phy_error_detect 0 8 fs_timeout_calib 0 12 hs_timeout_calib 0 csr_prg 0 halt_status 0 ss_ddr 0 16 set_desc 0 20 lpm_en 0 24 reserved 0 28 lpm_auto 31 Field Name (ID): Description 31:22 0x0 RO reserved: Reserved bits. These bits are reserved and should be set to zero. 21 0x0 RO Link Power Mode Enable (lpm_en): Link Power Mode is not supported. These bits are reserved and should be set to zero. 20 0x0 RO Link Power Mode Automatic (lpm_auto): Link Power Mode is not supported. These bits are reserved and should be set to zero. 19 0x0 RO Double Data Rate (ss_ddr): ULPI PHY interface is not supported. These bits are reserved and should be set to zero. 18 0x0 RW Set Descriptor Request Enable (set_desc): Indicates that the device supports Set Descriptor requests. 0: The USB Device Controller returns a STALL handshake to the USB host. 1: The SETUP packet for the Set Descriptor request passes to the application. 17 0x0 RW Dynamic Register Programming (csr_prg): The application can program the USB Device Controller registers dynamically whenever it has received an interrupt for either a Set Configuration or a Set Interface request. If this bit is set to 1, the USB Device Controller returns a NAK handshake during the status IN stage of both the Set Configuration and Set Interface requests until the application has written 1 to the CSR_DONE bit 13 of the Device Control Register. 16 0x0 RW Halt Status (halt_status): This bit indicates whether the USB Device Controller must respond with a STALL or an ACK handshake when the USB host has issued a Clear_Feature (ENDPOINT_HALT) request for Endpoint 0. Options are: 0: ACK 1: STALL 15:13 0x0 RW HS Timeout Counter (hs_timeout_calib): Number of PHY Clocks to the USB Device Controller Timeout Counter(for HS).The application uses these bits to increase the timeout value (736 to 848 bit times in high-speed operation), which depends on the PHY delay in generating a line state condition. The default timeout value is 736 bit times. August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 533 Intel® Quark™ SoC X1000—USB 2.0 Bit Range Default & Access Field Name (ID): Description 12:10 0x0 RW FS Timeout Counter (fs_timeout_calib): Number of PHY Clocks to the USB Device Controller Timeout Counter(for FS).These three bits indicate the number of PHY clocks to the USB Device Controller timeout counter. The application uses these bits to increase the timeout value (16 to 18 bit times in full-speed operation), which depends on the PHY delay in generating line state condition. The default timeout value is 16 bit times. 9 0x0 RW PHY Error Detect (phy_error_detect): If the application sets this bit, the device detects the phy_rxvalid or phy_rxactive input signal to be continuously asserted for 2 ms, indicating PHY error. 8 0x0 RW Non-zero Control Handshake 1 (status_1): This bit, together with STATUS Bit 7, provides an option for the USB Device Controller to respond to the USB host with a STALL or ACK handshake if the USB host has issued a non-zero-length data packet during the STATUS-OUT stage of a CONTROL transfer. 7 0x0 RW Non-zero Control Handshake (status): This bit, together with STATUS Bit 8, provides an option for the USB Device Controller to respond to the USB host with a STALL or ACK handshake if the USB host has issued a non-zero-length data packet during the STATUS-OUT stage of a CONTROL transfer. 6 0x0 RO UTMI Data Bus Direction (dir): This bit indicates if the UTMI data bus interface has to support a unidirectional or bidirectional interface. 0: Unidirectional interface 1: Bidirectional interface 5 1h RW PHY Interface Width (pi): Indicates if the UTMI PHY supports an 8-bit or 16-bit interface. 0: 16-bit 1: 8-bit. NOTE: even if this field is writable, only 8bit interface is supported. Writing 0 will lead to undefined behavior. 4 0x0 RW Sync Frame Support (ss): Indicates that the Device Supports Sync Frame. 3 0x0 RW Self-Powered Device (sp): Indicates that the Device is Self-Powered. 2 0x0 RW Remote Wake Up Capable (rwkp): Indicates that the device is remote wake up capable. 0x0 RW Device Speed (spd): This is the expected speed the application programs to the subsystem. The actual speed the subsystem operates depends on the enumeration speed (ENUM SPD) of the Device Status register. 00: HS (PHY clock = 60 MHz) 01: FS (PHY clock = 60 MHz) 10: Reserved 11: Reserved 1:0 16.6.1.54 Device Control Register (d_ctrl_udc_reg)—Offset 404h This register is set at runtime and controls the device after device configuration. Access Method Type: Memory Mapped I/O Register (Size: 32 bits) Offset: [BAR0] + 404h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:2] + 10h Default: 00000400h Intel® Quark™ SoC X1000 Datasheet 534 August 2015 Document Number: 329676-005US USB 2.0—Intel® Quark™ SoC X1000 Bit Range 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 rde res 0 reserved_2 0 du 0 tde 0 bf 0 be 0 the 0 bren 0 sd 0 0 mode 0 4 scale 0 8 devnak 0 12 csr_done 0 16 srx_flush 0 20 reserved_1 0 24 thlen 0 28 brlen 31 Default & Access Field Name (ID): Description 31:24 0x0 RW Threshold Length (thlen): Indicates the number (THLEN + 1) of 32-bit entries in the RxFIFO before the DMA can start data transfer. 23:16 0x0 RW Burst Length (brlen): Indicates the length, in 32-bit transfers, of a single burst on the AHB. The subsystem sends number of 32-bit transfers equal to (BRLEN + 1). 15 0x0 RO reserved_1: Reserved bits. These bits are reserved and should be set to zero. 14 0x0 RO Receive FIFO Flush for Single Receive FIFO (srx_flush): Multiple receive FIFOs are implemented. These bits are reserved and should be set to zero. 13 0x0 WO Dynamic Register Programming Done (csr_done): The application uses this bit to notify the USB Device Controller that the application has completed programming all required USB Device Controller registers, and the Subsystem can acknowledge the current Set Configuration or Set Interface command. 12 0x0 RW Device NAK (devnak): When the application sets this bit, the Subsystem core returns a NAK handshake to all OUT endpoints. By writing 1 to this bit, the application does not need to write 1 to the SNAK bit 7 of each Endpoint Control register. 11 0x0 RW Scale Down (scale): This bit reduces the timer values inside the USB Device Controller when running gate-level simulation only. When this bit is set to 1, timer values are scaled down to reduce simulation time. In Scale-Down mode, the USB Device Controller detects a USB reset within 150 PHY clock cycles (60-MHz PHY clock, 8-bit UTMI). Reset this bit to 0 for normal operation. 10 1h RW Soft Disconnect (sd): The application software uses this bit to signal the USB Device Controller to soft-disconnect. When set to 1, this bit causes the device to enter the disconnected state. 9 0x0 RW DMA/Slave-Only Mode (mode): Enables the application to dictate the subsystem operation in either DMA mode (1) or Slave-Only mode (0) operation. 8 0x0 RW Burst Enable (bren): When this bit is set, transfers on the AHB are split into bursts. 7 0x0 RW Threshold Enable (the): When this bit is set, a number of quadlets equivalent to the threshold value is transferred from the RxFIFO to the memory. 6 0x0 RW Buffer Fill Mode (bf): The DMA is in Buffer Fill mode and transfers data into contiguous locations pointed to by the buffer address. 5 0x0 RW System Endianness (be): A value of 1 indicates a big endian system. 4 0x0 RW Descriptor Update (du): When this bit is set, the DMA updates the descriptor at the end of each packet processed. 3 0x0 RW Transmit DMA Enable (tde): 0: disabled 1: enabled 2 0x0 RW Receive DMA Enable (rde): 0: disabled 1: enabled 1 0x0 RO reserved_2: Reserved bits. These bits are reserved and should be set to zero. August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 535 Intel® Quark™ SoC X1000—USB 2.0 Bit Range Default & Access Field Name (ID): Description 0x0 RW Remote Wakeup Resume (res): To perform a remote wakeup resume the application sets this bit to 1, then resets it to 0 after 1 ms. The USB Device Controller signals the USB host to resume the USB bus. However: The application must first set RWKP bit 2 in the Device Configuration Register, indicating that the subsystem supports the Remote Wakeup feature. The host must already have issued a Set Feature request to enable the device Remote Wakeup feature. 0 16.6.1.55 Device Status Register (d_sts_udc_reg)—Offset 408h This register reflects status information needed to service some of the interrupts. Access Method Type: Memory Mapped I/O Register (Size: 32 bits) Offset: [BAR0] + 408h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:2] + 10h Default: 00000000h Bit Range 0 0 0 16 0 0 0 12 0 0 0 0 0 8 0 0 0 0 4 0 0 0 0 0 0 0 0 0 Field Name (ID): Description 0x0 RO Received SOF Frame Number (ts): For high-speed operation: [31:21]: Millisecond frame number [20:18]: Microframe number For full-speed operation: [31:29]: Reserved [28:18]: Millisecond frame number 0x0 RO Remote Wakeup Status (rmtwkup_feat_sts): Status of Remote wakeup feature due to Set/Clear Feature (Remotewakeup) command from the host. A value of 1 indicates a Set Feature (Remotewakeup) has been received. A value of 0 indicates Clear Feature (Remotewakeup) has been received. Any change to this bit sets an interrupt in bit 7 of Device Interrupt register, if not masked. 16 0x0 RO PHY Error (phy_error): Either the phy_rxvalid or phy_rxactive input signal is detected to be continuously asserted for 2 ms, indicating PHY error. The USB Device Controller goes to the Suspend state as a result. When the application serves the early suspend interrupt (ES bit 2 of the Device Interrupt register) it also must check this bit to determine if the early suspend interrupt was generated due to PHY error detection. 15 0h RO Receive Address FIFO Empty Status (rxfifo_empty): Multiple receive FIFOs are implemented. These bits are reserved and should be set to zero. 31:18 17 Intel® Quark™ SoC X1000 Datasheet 536 Default & Access 20 0 cfg 0 intf 0 alt 0 susp 24 0 enum_spd 0 phy_error 0 rxfifo_empty 28 0 ts 0 rmtwkup_feat_sts 31 August 2015 Document Number: 329676-005US USB 2.0—Intel® Quark™ SoC X1000 Bit Range 16.6.1.56 Default & Access Field Name (ID): Description 14:13 0x0 RO Enumerated Speed (enum_spd): These bits hold the speed at which the subsystem comes up after the speed enumeration. Possible options are: 00 HS: If the SPD is high speed and the subsystem connects to a 2.0 host controller, then after Speed Enumeration, these bits indicate that the subsystem is operating in high speed mode. 01 FS: If the expected speed (SPD of the Device Configuration register) is high speed and the subsystem connects to a 1.1 host controller, then after Speed Enumeration, these bits indicate that the subsystem is operating in full speed mode. 10 : Reserved 110: Reserved 12 0x0 RO Suspend Status (susp): This bit is set as long as a Suspend condition is detected on the USB. 11:8 0x0 RO Alternate Setting (alt): This 4-bit field represents the alternate setting to which the above interface is switched. 7:4 0x0 RO SetInterface Command (intf): This 4-bit field reflects the interface set by the SetInterface command. 3:0 0x0 RO SetConfiguration Command (cfg): This 4-bit field reflects the configuration set by the SetConfiguration command. Device Interrupt Register (d_intr_udc_reg)—Offset 40Ch Device interrupts are set when there are system-level events. Interrupts are used by the application to make system-level decisions. After checking the register, the application must clear the interrupt by writing a 1?b1 to the correct bit. Access Method Type: Memory Mapped I/O Register (Size: 32 bits) Offset: [BAR0] + 40Ch BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:2] + 10h Default: 00000000h Bit Range Default & Access 0 16 0 0 0 0 12 0 0 0 0 8 0 0 4 0 0 0 0 0 0 0 0 0 0 0 sc 0 si 0 ur 20 0 es 0 us 0 sof 0 enumc 24 0 rmtwkup 0 slpm 0 lpm_tkn 28 0 reserved 0 e_slpm 31 Field Name (ID): Description 31:11 0x0 RO reserved: Reserved bits. These bits are reserved and should be set to zero. 10 0x0 RO LPM Early Sleep (e_slpm): Link Power Mode is not supported. These bits are reserved and should be set to zero. 9 0x0 RO LPM Sleep (slpm): Link Power Mode is not supported. These bits are reserved and should be set to zero. 8 0x0 RO LPM Transaction (lpm_tkn): Link Power Mode is not supported. These bits are reserved and should be set to zero. 7 0x0 RW/1C August 2015 Document Number: 329676-005US Remote Wakeup (rmtwkup): A Set/Clear Feature (Remote Wakeup) is received by the core. This bit is set by the core whenever bit 17 of the Device Status Register changes: HIGH to LOW or LOW to HIGH. Intel® Quark™ SoC X1000 Datasheet 537 Intel® Quark™ SoC X1000—USB 2.0 Bit Range 16.6.1.57 Default & Access Field Name (ID): Description 6 0x0 RW/1C Speed Enumeration Completed (enumc): Speed enumeration is complete. 5 0x0 RW/1C SOF Token Detected (sof): An SOF token is detected on the USB. 4 0x0 RW/1C Suspend State (us): A suspend state is detected on the USB for a duration of 3 milliseconds, following the 3 ms Idle State interrupt activity due to an idle state. 3 0x0 RW/1C USB Reset Detected (ur): NOTE: If the application has not served this interrupt, the USB Device Controller returns a NAK handshake for all transactions except the 8 SETUP packet bytes from the USB host. 2 0x0 RW/1C Idle State Detected (es): An idle state is detected on the USB for a duration of 3 ms. This interrupt bit is used for the application firmware to finish its job before the subsystem generates a true suspend (US) interrupt (another 3 ms after the ES interrupt) 1 0x0 RW/1C Set_Interface Command Received (si): The device has received a Set_Interface command. NOTE: If the application has not served this interrupt, the USB Device Controller returns a NAK handshake for all transactions except the 8 SETUP packet bytes from the USB host. 0 0x0 RW/1C Set_Configuration Command Received (sc): NOTE: If the application has not served this interrupt, the USB Device Controller returns a NAK handshake for all transactions except the 8 SETUP packet bytes from the USB host. Device Interrupt Mask Register (d_intr_msk_udc_reg)—Offset 410h The device interrupt mask can be set for system-level interrupts using this register. Programming 1'b1 in the appropriate bit position in the Interrupt Mask register masks the designated interrupt. Once masked, an interrupt signal does not reach the application, nor does its interrupt bit get set. Access Method Type: Memory Mapped I/O Register (Size: 32 bits) Offset: [BAR0] + 410h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:2] + 10h Default: 00000000h 24 0 0 0 0 20 0 0 0 Bit Range Default & Access 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 0 4 0 0 0 0 0 0 0 0 0 mask1 0 slpm 0 lpm_tkn 28 0 reserved 0 e_slpm 31 Field Name (ID): Description 31:11 0x0 RO reserved: Reserved bits. These bits are reserved and should be set to zero. 10 0x0 RO LPM Early Sleep (e_slpm): Link Power Mode is not supported. These bits are reserved and should be set to zero. 9 0x0 RO LPM Sleep (slpm): Link Power Mode is not supported. These bits are reserved and should be set to zero. 8 0x0 RO LPM Transaction (lpm_tkn): Link Power Mode is not supported. These bits are reserved and should be set to zero. Intel® Quark™ SoC X1000 Datasheet 538 August 2015 Document Number: 329676-005US USB 2.0—Intel® Quark™ SoC X1000 Bit Range Default & Access Field Name (ID): Description 0x0 RW Device Interrupt Mask (mask1): Masks equivalent device interrupt bit in the Device Interrupt Register. 7:0 16.6.1.58 Endpoints Interrupt Register (ep_intr_udc_reg)—Offset 414h The Endpoint Interrupt register is used to set endpoint-level interrupts. Since all 4 endpoints are bidirectional, each endpoint has two interrupt bits (one for each direction). The application needs to clear the interrupt by writing a 1'b1 to the correct bit after checking the register. Access Method Type: Memory Mapped I/O Register (Size: 32 bits) Offset: [BAR0] + 414h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:2] + 10h Default: 00000000h 31 28 0 0 0 24 0 0 0 0 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 Bit Range 31:16 15:0 16.6.1.59 Default & Access 8 0 0 0 0 4 0 0 0 0 0 0 0 0 0 in_ep out_ep 0 Field Name (ID): Description 0x0 RW/1C OUT Endpoint Interrupt (out_ep): One bit is associated to one of the 4 supported OUT endpoint, set when there is an event on that endpoint. bit0: OUT ED0 bit1: OUT ED1 bit2: OUT ED2 bit3: OUT ED3 bit4-bit15: Reserved 0x0 RW/1C IN Endpoint Interrupt (in_ep): One bit is associated to one of the 4 supported IN endpoint, set when there is an event on that endpoint. bit0: IN ED0 bit1: IN ED1 bit2: IN ED2 bit3: IN ED3 bit4-bit15: Reserved Endpoints Interrupt Mask Register (ep_intr_msk_udc_reg)—Offset 418h This register is used to mask endpoint interrupts. A write of 1'b1 to any bit in this register masks the corresponding endpoint for any possible interrupts. Once masked, an interrupt signal does not reach the application, nor does its interrupt bit get set. Access Method Type: Memory Mapped I/O Register (Size: 32 bits) Offset: [BAR0] + 418h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:2] + 10h Default: 00000000h August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 539 Intel® Quark™ SoC X1000—USB 2.0 31 0 0 0 24 0 0 0 0 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 Bit Range Default & Access 31:16 15:0 16.6.1.60 0 4 0 0 0 0 0 0 0 0 0 in_ep_mask out_ep_mask 0 28 Field Name (ID): Description 0h RW OUT Endpoint Interrupt Mask (out_ep_mask): Masks the OUT Endpoint Interrupt Register bits of the equivalent OUT endpoint. bit0: OUT ED0 bit1: OUT ED1 bit2: OUT ED2 bit3: OUT ED3 bit4-bit15: Reserved 0h RW IN Endpoint Interrupt Mask (in_ep_mask): Masks the IN Endpoint Interrupt Register bits of the equivalent IN endpoint. bit0: IN ED0 bit1: IN ED1 bit2: IN ED2 bit3: IN ED3 bit4-bit15: Reserved Test Mode Register (test_mode_udc_reg)—Offset 41Ch In Test mode, the application can use the AHB to read from a TxFIFO or write to an RxFIFO using AHB read/write cycles. Test mode is supported only in the Slave-Only operational mode. In Test mode, only single- DWORD transactions are supported: byte and word transactions on the AHB are not supported. In non-Test modes, reading from a TxFIFO or writing to an RxFIFO results in an AHB error response. The application must never read an empty TxFIFO or write a full RxFIFO even though an AHB error response is not provided. NOTE: Writing to the RxFIFO in Test mode and enabling the DMA to transfer the data are not supported. Access Method Type: Memory Mapped I/O Register (Size: 32 bits) Offset: [BAR0] + 41Ch BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:2] + 10h Default: 00000000h 31 28 0 0 0 24 0 0 0 0 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 0 Bit Range Default & Access 0 0 0 0 0 0 0 0 Field Name (ID): Description 31:1 0x0 RO reserved: Reserved bits. These bits are reserved and should be set to zero. 0 0x0 RW Test Mode indicator (tstmode): 0: Normal mode 1: Test mode Intel® Quark™ SoC X1000 Datasheet 540 4 0 tstmode reserved 0 August 2015 Document Number: 329676-005US USB 2.0—Intel® Quark™ SoC X1000 16.6.1.61 Product Release Number Register (revision_udc_reg)—Offset 420h Access Method Type: Memory Mapped I/O Register (Size: 32 bits) Offset: [BAR0] + 420h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:2] + 10h Default: 3234352Ah 31 0 1 1 24 0 0 1 0 20 0 0 1 1 16 0 1 0 0 12 0 0 1 1 8 0 1 0 1 4 0 0 1 0 0 1 0 1 0 release_id 0 28 Bit Range 31:0 16.6.1.62 Default & Access Field Name (ID): Description Product Release Number (release_id): This field indicates the ASCII characters of 3234352Ah the four-digit release number in hexadecimal format. For example, 32_34_35_ 2A represents 2.45* in ASCII character, where * is an alphabetic character (for example, a, RO b, or c) that represents a update to the release, which does not impact the RTL source. SETUP command address pointer register (udc_desc_addr_udc_reg)— Offset 500h NOTE: The SETUP command address pointer register is not writable and returns 0 when read because the SETUP command address pointer is hardcoded to xFFF0. Access Method Type: Memory Mapped I/O Register (Size: 32 bits) Offset: [BAR0] + 500h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:2] + 10h Default: 00000000h 0 0 0 24 0 0 0 0 dev_desc_addr_ptr 0 28 Bit Range Default & Access 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 0 4 0 0 0 0 0 0 0 0 0 su_cmd_addr_ptr 31 Field Name (ID): Description 31:16 0x0 RO Device Descriptor Address Pointer (dev_desc_addr_ptr): Device Descriptor Address Pointer 15:0 0x0 RO SETUP Command Address Pointer (su_cmd_addr_ptr): SETUP Command Address Pointer August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 541 Intel® Quark™ SoC X1000—USB 2.0 16.6.1.63 Physical Endpoint 0 Register (udc_ep_ne_udc_reg_0)—Offset 504h Access Method Type: Memory Mapped I/O Register (Size: 32 bits) Offset: [BAR0] + 504h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:2] + 10h Default: 00000000h 0 0 0 0 max_pkt_size Bit Range 16.6.1.64 0 Default & Access 0 0 0 0 0 0 0 0 0 0 0 0 0 4 0 0 0 0 0 0 0 0 0 ep_num 0 8 ep_dir 0 12 ep_type 0 16 cfg 0 20 intf 0 24 reserved 0 28 alt 31 Field Name (ID): Description 31:30 0x0 RW reserved: Reserved bits. These bits are reserved and should be set to zero. 29:19 0x0 RW Maximum Packet Size (max_pkt_size): NOTE: In full-speed mode operation, application firmware must program the maximum packet size of default endpoint 0 in accordance with the value defined in USB 2.0 specification 18:15 0x0 RW Alternate Setting (alt): Alternate setting to which this endpoint belongs. 14:11 0x0 RW Interface Number (intf): Interface number to which this endpoint belongs. 10:7 0x0 RW Configuration Number (cfg): Configuration number to which this endpoint belongs 6:5 0x0 RW Endpoint Type (ep_type): The possible options are: 00: Control 01: Isochronous 10: Bulk 11: Interrupt 4 0x0 RW Endpoint Direction (ep_dir): 0: OUT 1: IN 3:0 0x0 RW Logical Endpoint Number (ep_num): Logical Endpoint Number Physical Endpoint 1 Register (udc_ep_ne_udc_reg_1)—Offset 508h Access Method Type: Memory Mapped I/O Register (Size: 32 bits) Offset: [BAR0] + 508h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:2] + 10h Default: 00000000h Intel® Quark™ SoC X1000 Datasheet 542 August 2015 Document Number: 329676-005US USB 2.0—Intel® Quark™ SoC X1000 0 0 0 0 0 0 0 max_pkt_size Bit Range 16.6.1.65 0 0 0 0 0 Default & Access 0 0 0 0 0 0 4 0 0 0 0 0 0 0 0 0 ep_num 0 8 ep_dir 0 12 ep_type 0 16 cfg 0 20 intf 0 24 reserved 0 28 alt 31 Field Name (ID): Description 31:30 0x0 RW reserved: Reserved bits. These bits are reserved and should be set to zero. 29:19 0x0 RW Maximum Packet Size (max_pkt_size): NOTE: In full-speed mode operation, application firmware must program the maximum packet size of default endpoint 0 in accordance with the value defined in USB 2.0 specification 18:15 0x0 RW Alternate Setting (alt): Alternate setting to which this endpoint belongs. 14:11 0x0 RW Interface Number (intf): Interface number to which this endpoint belongs. 10:7 0x0 RW Configuration Number (cfg): Configuration number to which this endpoint belongs 6:5 0x0 RW Endpoint Type (ep_type): The possible options are: 00: Control 01: Isochronous 10: Bulk 11: Interrupt 4 0x0 RW Endpoint Direction (ep_dir): 0: OUT 1: IN 3:0 0x0 RW Logical Endpoint Number (ep_num): Logical Endpoint Number Physical Endpoint 2 Register (udc_ep_ne_udc_reg_2)—Offset 50Ch Access Method Type: Memory Mapped I/O Register (Size: 32 bits) Offset: [BAR0] + 50Ch BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:2] + 10h Default: 00000000h 0 max_pkt_size 0 Bit Range 31:30 Default & Access 0x0 RW August 2015 Document Number: 329676-005US 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 0 4 0 0 0 0 0 0 0 0 0 ep_num 0 ep_dir 24 0 ep_type 0 cfg 0 intf 28 0 reserved 0 alt 31 Field Name (ID): Description reserved: Reserved bits. These bits are reserved and should be set to zero. Intel® Quark™ SoC X1000 Datasheet 543 Intel® Quark™ SoC X1000—USB 2.0 Bit Range 16.6.1.66 Default & Access Field Name (ID): Description 29:19 0x0 RW Maximum Packet Size (max_pkt_size): NOTE: In full-speed mode operation, application firmware must program the maximum packet size of default endpoint 0 in accordance with the value defined in USB 2.0 specification 18:15 0x0 RW Alternate Setting (alt): Alternate setting to which this endpoint belongs. 14:11 0x0 RW Interface Number (intf): Interface number to which this endpoint belongs. 10:7 0x0 RW Configuration Number (cfg): Configuration number to which this endpoint belongs 6:5 0x0 RW Endpoint Type (ep_type): The possible options are: 00: Control 01: Isochronous 10: Bulk 11: Interrupt 4 0x0 RW Endpoint Direction (ep_dir): 0: OUT 1: IN 3:0 0x0 RW Logical Endpoint Number (ep_num): Logical Endpoint Number Physical Endpoint 3 Register (udc_ep_ne_udc_reg_3)—Offset 510h Access Method Type: Memory Mapped I/O Register (Size: 32 bits) Offset: [BAR0] + 510h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:2] + 10h Default: 00000000h 0 max_pkt_size 0 Bit Range Default & Access 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 0 0 0 0 0 0 0 0 Field Name (ID): Description 31:30 0x0 RW reserved: Reserved bits. These bits are reserved and should be set to zero. 29:19 0x0 RW Maximum Packet Size (max_pkt_size): NOTE: In full-speed mode operation, application firmware must program the maximum packet size of default endpoint 0 in accordance with the value defined in USB 2.0 specification 18:15 0x0 RW Alternate Setting (alt): Alternate setting to which this endpoint belongs. 14:11 0x0 RW Interface Number (intf): Interface number to which this endpoint belongs. 10:7 0x0 RW Configuration Number (cfg): Configuration number to which this endpoint belongs Intel® Quark™ SoC X1000 Datasheet 544 0 ep_num 0 8 ep_dir 0 12 ep_type 0 16 cfg 0 20 intf 0 24 reserved 0 28 alt 31 August 2015 Document Number: 329676-005US USB 2.0—Intel® Quark™ SoC X1000 Bit Range 16.6.1.67 Default & Access Field Name (ID): Description 6:5 0x0 RW Endpoint Type (ep_type): The possible options are: 00: Control 01: Isochronous 10: Bulk 11: Interrupt 4 0x0 RW Endpoint Direction (ep_dir): 0: OUT 1: IN 3:0 0x0 RW Logical Endpoint Number (ep_num): Logical Endpoint Number Physical Endpoint 4 Register (udc_ep_ne_udc_reg_4)—Offset 514h Access Method Type: Memory Mapped I/O Register (Size: 32 bits) Offset: [BAR0] + 514h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:2] + 10h Default: 00000000h 0 max_pkt_size 0 Bit Range Default & Access 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 0 0 0 0 0 0 0 0 Field Name (ID): Description 31:30 0x0 RW reserved: Reserved bits. These bits are reserved and should be set to zero. 29:19 0x0 RW Maximum Packet Size (max_pkt_size): NOTE: In full-speed mode operation, application firmware must program the maximum packet size of default endpoint 0 in accordance with the value defined in USB 2.0 specification 18:15 0x0 RW Alternate Setting (alt): Alternate setting to which this endpoint belongs. 14:11 0x0 RW Interface Number (intf): Interface number to which this endpoint belongs. 10:7 0x0 RW Configuration Number (cfg): Configuration number to which this endpoint belongs 6:5 0x0 RW Endpoint Type (ep_type): The possible options are: 00: Control 01: Isochronous 10: Bulk 11: Interrupt 4 0x0 RW Endpoint Direction (ep_dir): 0: OUT 1: IN 3:0 0x0 RW Logical Endpoint Number (ep_num): Logical Endpoint Number August 2015 Document Number: 329676-005US 0 ep_num 0 8 ep_dir 0 12 ep_type 0 16 cfg 0 20 intf 0 24 reserved 0 28 alt 31 Intel® Quark™ SoC X1000 Datasheet 545 Intel® Quark™ SoC X1000—USB 2.0 16.6.1.68 Physical Endpoint 5 Register (udc_ep_ne_udc_reg_5)—Offset 518h Access Method Type: Memory Mapped I/O Register (Size: 32 bits) Offset: [BAR0] + 518h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:2] + 10h Default: 00000000h 0 0 0 0 max_pkt_size Bit Range 16.6.1.69 0 Default & Access 0 0 0 0 0 0 0 0 0 0 0 0 0 4 0 0 0 0 0 0 0 0 0 ep_num 0 8 ep_dir 0 12 ep_type 0 16 cfg 0 20 intf 0 24 reserved 0 28 alt 31 Field Name (ID): Description 31:30 0x0 RW reserved: Reserved bits. These bits are reserved and should be set to zero. 29:19 0x0 RW Maximum Packet Size (max_pkt_size): NOTE: In full-speed mode operation, application firmware must program the maximum packet size of default endpoint 0 in accordance with the value defined in USB 2.0 specification 18:15 0x0 RW Alternate Setting (alt): Alternate setting to which this endpoint belongs. 14:11 0x0 RW Interface Number (intf): Interface number to which this endpoint belongs. 10:7 0x0 RW Configuration Number (cfg): Configuration number to which this endpoint belongs 6:5 0x0 RW Endpoint Type (ep_type): The possible options are: 00: Control 01: Isochronous 10: Bulk 11: Interrupt 4 0x0 RW Endpoint Direction (ep_dir): 0: OUT 1: IN 3:0 0x0 RW Logical Endpoint Number (ep_num): Logical Endpoint Number Physical Endpoint 6 Register (udc_ep_ne_udc_reg_6)—Offset 51Ch Access Method Type: Memory Mapped I/O Register (Size: 32 bits) Offset: [BAR0] + 51Ch BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:2] + 10h Default: 00000000h Intel® Quark™ SoC X1000 Datasheet 546 August 2015 Document Number: 329676-005US USB 2.0—Intel® Quark™ SoC X1000 0 0 0 0 0 0 0 max_pkt_size Bit Range 16.6.1.70 0 0 0 0 0 Default & Access 0 0 0 0 0 0 4 0 0 0 0 0 0 0 0 0 ep_num 0 8 ep_dir 0 12 ep_type 0 16 cfg 0 20 intf 0 24 reserved 0 28 alt 31 Field Name (ID): Description 31:30 0x0 RW reserved: Reserved bits. These bits are reserved and should be set to zero. 29:19 0x0 RW Maximum Packet Size (max_pkt_size): NOTE: In full-speed mode operation, application firmware must program the maximum packet size of default endpoint 0 in accordance with the value defined in USB 2.0 specification 18:15 0x0 RW Alternate Setting (alt): Alternate setting to which this endpoint belongs. 14:11 0x0 RW Interface Number (intf): Interface number to which this endpoint belongs. 10:7 0x0 RW Configuration Number (cfg): Configuration number to which this endpoint belongs 6:5 0x0 RW Endpoint Type (ep_type): The possible options are: 00: Control 01: Isochronous 10: Bulk 11: Interrupt 4 0x0 RW Endpoint Direction (ep_dir): 0: OUT 1: IN 3:0 0x0 RW Logical Endpoint Number (ep_num): Logical Endpoint Number RxFIFO Array[0-511] (udc_rx_fifo_reg_array[0-511])—Offset 800h, Count 512, Stride 4h Access Method Type: Memory Mapped I/O Register (Size: 32 bits) Offset[0-511]: [BAR0] + 800h + [0-511]*4h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:2] + 10h Default: 00000000h 31 0 0 0 24 0 0 0 0 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 0 4 0 0 0 0 0 0 0 0 0 rx_fifo 0 28 Bit Range 31:0 Default & Access 0x0 RW August 2015 Document Number: 329676-005US Field Name (ID): Description Receive FIFO (rx_fifo): Receive FIFO Intel® Quark™ SoC X1000 Datasheet 547 Intel® Quark™ SoC X1000—USB 2.0 16.6.1.71 TxFIFO 0 Array[0-255] (udc_tx_fifo_reg_0_array[0-255])—Offset 1000h, Count 256, Stride 4h Access Method Type: Memory Mapped I/O Register (Size: 32 bits) Offset[0-255]: [BAR0] + 1000h + [0-255]*4h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:2] + 10h Default: 00000000h 31 28 0 0 0 24 0 0 0 0 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 0 4 0 0 0 0 0 0 0 0 0 tx_fifo 0 Bit Range Default & Access 0x0 RW 31:0 16.6.1.72 Field Name (ID): Description Transmit FIFO 0 (tx_fifo): Transmit FIFO 0 TxFIFO 1 Array[0-255] (udc_tx_fifo_reg_1_array[0-255])—Offset 1400h, Count 256, Stride 4h Access Method Type: Memory Mapped I/O Register (Size: 32 bits) Offset[0-255]: [BAR0] + 1400h + [0-255]*4h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:2] + 10h Default: 00000000h 31 0 0 0 24 0 0 0 0 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 0 4 0 0 0 0 0 0 0 0 0 tx_fifo 0 28 Bit Range 31:0 16.6.1.73 Default & Access 0x0 RW Field Name (ID): Description Transmit FIFO 1 (tx_fifo): Transmit FIFO 1 TxFIFO 2 Array[0-255] (udc_tx_fifo_reg_2_array[0-255])—Offset 1800h, Count 256, Stride 4h Access Method Type: Memory Mapped I/O Register (Size: 32 bits) Offset[0-255]: [BAR0] + 1800h + [0-255]*4h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:2] + 10h Default: 00000000h Intel® Quark™ SoC X1000 Datasheet 548 August 2015 Document Number: 329676-005US USB 2.0—Intel® Quark™ SoC X1000 31 0 0 0 24 0 0 0 0 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 0 4 0 0 0 0 0 0 0 0 0 tx_fifo 0 28 Bit Range Default & Access 0x0 RW 31:0 16.6.1.74 Field Name (ID): Description Transmit FIFO 2 (tx_fifo): Transmit FIFO 2 TxFIFO 3 Array[0-255] (udc_tx_fifo_reg_3_array[0-255])—Offset 1C00h, Count 256, Stride 4h Access Method Type: Memory Mapped I/O Register (Size: 32 bits) Offset[0-255]: [BAR0] + 1C00h + [0-255]*4h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:2] + 10h Default: 00000000h 31 0 0 0 24 0 0 0 0 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 0 4 0 0 0 0 0 0 0 0 0 tx_fifo 0 28 Bit Range 31:0 Default & Access 0x0 RW Field Name (ID): Description Transmit FIFO 3 (tx_fifo): Transmit FIFO 3 16.6.2 USB EHCI Table 107. Summary of Memory Mapped I/O Registers—BAR0 Offset Start Offset End Default Value Register Name (Register Symbol) 0h 3h “Host Controller Interface Version Number and Capability Registers Length (HCCAPBASE)—Offset 0h” on page 550 01000010h 4h 7h “Host Controller Structural Parameters (HCSPARAMS)—Offset 4h” on page 550 00001212h 8h Bh “Host Controller Capability Parameters (HCCPARAMS)—Offset 8h” on page 552 0000C012h 10h 13h “USB Command (USBCMD)—Offset 10h” on page 553 00080000h 14h 17h “USB Status (USBSTS)—Offset 14h” on page 555 00001000h 18h 1Bh “USB Interrupt Enable (USBINTR)—Offset 18h” on page 557 00000000h 1Ch 1Fh “USB Frame Index (FRINDEX)—Offset 1Ch” on page 558 00000000h 20h 23h “4 Gigabyte Memory Segment Selector (CTRLDSSEGMENT)—Offset 20h” on page 559 00000000h 24h 27h “Periodic Frame List Base Address (PERIODICLISTBASE)—Offset 24h” on page 559 00000000h August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 549 Intel® Quark™ SoC X1000—USB 2.0 Table 107. Offset Start Summary of Memory Mapped I/O Registers—BAR0 (Continued) Offset End Default Value Register Name (Register Symbol) 28h 2Bh “Asynchronous List Address (ASYNCLISTADDR)—Offset 28h” on page 560 00000000h 50h 53h “Configure Flag (CONFIGFLAG)—Offset 50h” on page 560 00000000h 54h + [01]*4h 57h “Port Status/Control[0-1] (PORTSC[0-1])—Offset 54h, Count 2, Stride 4h” on page 561 00002000h 90h 93h “Programmable Microframe Base Value (INSNREG00)—Offset 90h” on page 564 00000000h 94h 97h “Programmable Packet Buffer OUT/IN Thresholds (INSNREG01)—Offset 94h” on page 565 00200020h 98h 9Bh “Programmable Packet Buffer Depth (INSNREG02)—Offset 98h” on page 565 00000080h 9Ch 9Fh “Programmable Controller Settings (INSNREG03)—Offset 9Ch” on page 566 00002001h A0h A3h “Programmable Controller Settings (INSNREG04)—Offset A0h” on page 567 00000000h A4h A7h “UTMI Configuration (INSNREG05)—Offset A4h” on page 568 00001000h 16.6.2.1 Host Controller Interface Version Number and Capability Registers Length (HCCAPBASE)—Offset 0h Access Method Type: Memory Mapped I/O Register (Size: 32 bits) Offset: [BAR0] + 0h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:3] + 10h Default: 01000010h 0 0 0 0 0 1 20 0 0 0 0 16 0 0 0 0 12 0 0 0 Bit Range 31:16 15:8 7:0 16.6.2.2 0 8 0 0 0 0 4 0 0 0 1 0 0 0 0 0 caplength 0 24 hciversion 0 28 reserved_15_8 31 Default & Access Field Name (ID): Description 0100h RO Host Controller Interface Version Number (hciversion): This is a two-byte register containing a BCD encoding of the EHCI revision number supported by this host controller. The most significant byte of this register represents a major revision and the least significant byte is the minor revision. 0h RO 010h RO reserved_15_8: Reserved bits. These bits are reserved and should be set to zero. Capability Registers Length (caplength): This register is used as an offset to add to register base to find the beginning of the Operational Register Space. Host Controller Structural Parameters (HCSPARAMS)—Offset 4h Access Method Type: Memory Mapped I/O Register (Size: 32 bits) Offset: [BAR0] + 4h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:3] + 10h Intel® Quark™ SoC X1000 Datasheet 550 August 2015 Document Number: 329676-005US USB 2.0—Intel® Quark™ SoC X1000 Default: 00001212h Bit Range 0 Default & Access 0 0 16 0 0 0 0 12 0 0 0 1 8 0 0 1 0 4 0 0 0 1 0 0 0 1 0 n_ports 20 0 ppc 0 reserved_6_5 0 port_route_rules 0 n_pcc 24 0 n_cc 0 p_indicator 0 reserved_19_17 28 0 reserved_31_24 0 debug_port_number 31 Field Name (ID): Description 31:24 0h RO reserved_31_24: Reserved bits. These bits are reserved and should be set to zero. 23:20 0h RO Debug Port Number (debug_port_number): This register identifies which of the host controller ports is the debug port. The value is the port number (one-based) of the debug port. A non-zero value in this field indicates the presence of a debug port. The value in this register must not be greater than N_PORTS. NOTE: Debug Port is not supported 19:17 000b RO reserved_19_17: Reserved bits. These bits are reserved and should be set to zero. 0b RO Port Indicator (p_indicator): This bit indicates whether the ports support port indicator control. When this bit is a one, the port status and control registers include a read/writeable field for controlling the state of the port indicator. NOTE: Port Indicator is not supported 1h RO Number of Companion Controllers (n_cc): This field indicates the number of companion controllers associated with this USB 2.0 host controller. A zero in this field indicates there are no companion host controllers. Port-ownership hand-off is not supported. Only high-speed devices are supported on the host controller root ports. A value larger than zero in this field indicates there are companion USB 1.1 host controller(s). Port-ownership hand-offs are supported. High, Full- and Low-speed devices are supported on the host controller root ports. 2h RO Number of Ports per Companion Controller (n_pcc): This field indicates the number of ports supported per companion host controller. It is used to indicate the port routing configuration to system software. For example, if N_PORTS has a value of 6 and N_CC has a value of 2 then N_PCC could have a value of 3. The convention is that the first N_PCC ports are assumed to be routed to companion controller 1, the next N_PCC ports to companion controller 2, etc. In the previous example, the N_PCC could have been 4, where the first 4 are routed to companion controller 1 and the last two are routed to companion controller 2. The number in this field must be consistent with N_PORTS and N_CC. 7 0b RO Port Routing Rules (port_route_rules): This field indicates the method used by this implementation for how all ports are mapped to companion controllers. The value of this field has the following interpretation: 0: The first N_PCC ports are routed to the lowest numbered function companion host controller, the next N_PCC port are routed to the next lowest function companion controller, and so on. 1: The port routing is explicitly enumerated by the first N_PORTS elements of the HCSPPORTROUTE array. 6:5 00b RO reserved_6_5: Reserved bits. These bits are reserved and should be set to zero. 1b RO Port Power Control (ppc): This field indicates whether the host controller implementation includes port power control. A one in this bit indicates the ports have port power switches. A zero in this bit indicates the port do not have port power switches. The value of this field affects the functionality of the Port Power field in each port status and control register. NOTE: Port Power Control is supported. 16 15:12 11:8 4 August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 551 Intel® Quark™ SoC X1000—USB 2.0 Bit Range Default & Access Field Name (ID): Description 2h RO Number of Physical Downstream Ports (n_ports): This field specifies the number of physical downstream ports implemented on this host controller. The value of this field determines how many port registers are addressable in the Operational Register Space. Valid values are in the range of 1 to F. A zero in this field is undefined. 3:0 16.6.2.3 Host Controller Capability Parameters (HCCPARAMS)—Offset 8h Access Method Type: Memory Mapped I/O Register (Size: 32 bits) Offset: [BAR0] + 8h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:3] + 10h Default: 0000C012h Bit Range Default & Access 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 frame_list_flag 0 0 address_64bit_cap 0 4 reserved_3 0 8 async_schedule_park_cap 0 12 isoc_schedule_threshold 0 16 eecp 0 20 reserved_16 0 24 reserved_31_18 0 28 link_power_mgmt_cap 31 Field Name (ID): Description 31:18 0h RO reserved_31_18: Reserved bits. These bits are reserved and should be set to zero. 17 0h RO Link Power Management Capability (link_power_mgmt_cap): NOTE: Link Power Management is not supported. 16 0h RO reserved_16: Reserved bits. These bits are reserved and should be set to zero. C0h RO EHCI Extended Capabilities Pointer (eecp): This optional field indicates the existence of a capabilities list. A value of 00h indicates no extended capabilities are implemented. A non-zero value in this register indicates the offset in PCI configuration space of the first EHCI extended capability. The pointer value must be 40 or greater if implemented to maintain the consistency of the PCI header defined for this class of device. NOTE: EHCI Extended Capabilities is supported. 7:4 1h RO Isochronous Scheduling Threshold (isoc_schedule_threshold): This field indicates, relative to the current position of the executing host controller, where software can reliably update the isochronous schedule. When bit [7] is zero, the value of the least significant 3 bits indicates the number of micro-frames a host controller can hold a set of isochronous data structures (one or more) before flushing the state. When bit [7] is a one, then host software assumes the host controller may cache an isochronous data structure for an entire frame. 3 0h RO reserved_3: Reserved bits. These bits are reserved and should be set to zero. 15:8 Intel® Quark™ SoC X1000 Datasheet 552 August 2015 Document Number: 329676-005US USB 2.0—Intel® Quark™ SoC X1000 Bit Range Default & Access Field Name (ID): Description 0h RO Async Schedule Park Capability (async_schedule_park_cap): If this bit is set to a one, then the host controller supports the park feature for high-speed queue heads in the Asynchronous Schedule and he feature can be disabled or enabled and set to a specific level by using the Asynchronous Schedule Park Mode Enable and Asynchronous Schedule Park Mode Count fields in the USBCMD register. NOTE: Async Schedule Park capability is not supported. 1h RO Programmable Frame List Flag (frame_list_flag): If this bit is set to a zero, then system software must use a frame list length of 1024 elements with this host controller and the USBCMD register Frame List Size field is a read-only register. If set to a one, then system software can specify and use a smaller frame list and configure the host controller via the USBCMD register Frame List Size field. The frame list must always be aligned on a 4K page boundary. This requirement ensures that the frame list is always physically contiguous. NOTE: Programmable Frame List Flag is supported. 0h RO 64-bit Addressing Capability (address_64bit_cap): This field documents the addressing range capability of this implementation. The value of this field determines whether software should use the data structures. Values for this field have the following interpretation: 0: data structures using 32-bit address memory pointers 1: data structures using 64-bit address memory pointers NOTE: 64-bit Addressing is not supported 2 1 0 16.6.2.4 USB Command (USBCMD)—Offset 10h This register indicates the command to be executed by the serial bus host controller. Writing to the register causes a command to be executed. Access Method Type: Memory Mapped I/O Register (Size: 32 bits) Offset: [BAR0] + 10h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:3] + 10h Default: 00080000h Bit Range 31:28 Default & Access 0h RO August 2015 Document Number: 329676-005US 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 run_stop 0 hcreset 0 0 frame_list_size 0 async_schedule_enable 0 periodic_schedule_enable 0 light_hcreset host_initiated_resume_duration 0 4 intr_on_async_advance_drbell 0 8 async_schedule_park_mode_cnt 0 12 reserved_10 0 16 async_schedule_park_mode_enable 0 20 reserved_15_12 0 24 reserved_31_28 0 28 intr_threshold_ctrl 31 Field Name (ID): Description reserved_31_28: Reserved bits. These bits are reserved and should be set to zero. Intel® Quark™ SoC X1000 Datasheet 553 Intel® Quark™ SoC X1000—USB 2.0 Bit Range Default & Access Field Name (ID): Description 0h RO Host Initiated Resume Duration (host_initiated_resume_duration): If the Link Power Management Capability bit in the HCCPARAMS register is set to one then this bit is R/W; otherwise RO and not functional. NOTE: Link Power Management is not supported. 23:16 08h RW Interrupt Threshold Control (intr_threshold_ctrl): This field is used by system software to select the maximum rate at which the host controller will issue interrupts. If software writes an invalid value to this register, the results are undefined. Allowed values are: 00: Reserved 01: 1 micro-frame 02: 2 micro-frames 04: 4 micro-frames 08: 8 micro-frames (default, equates to 1ms) 10: 16 micro-frames (2ms) 20: 32 micro-frames (4ms) 40: 64 micro-frames (8ms) Any other value in this register yields undefined results. Software modifications to this bit while HCHalted bit is equal to zero results in undefined behavior. 15:12 0h RO reserved_15_12: Reserved bits. These bits are reserved and should be set to zero. 11 0h RO Asynchronous Schedule Park Mode Enable (async_schedule_park_mode_enable): If the Asynchronous Park Capability bit in the HCCPARAMS register is a one, then this bit defaults to a 1 and is R/W. Otherwise the bit must be a zero and is RO. Software uses this bit to enable or disable Park mode. When this bit is one, Park mode is enabled. When this bit is a zero, Park mode is disabled. NOTE: Asynchronous Park Capability is not supported. 10 0h RO reserved_10: Reserved bits. These bits are reserved and should be set to zero. 0h RO Asynchronous Schedule Park Mode Count (async_schedule_park_mode_cnt): If the Asynchronous Park Capability bit in the HCCPARAMS register is a one, then this field defaults to 3 and is R/W. Otherwise it defaults to zero and is RO. It contains a count of the number of successive transactions the host controller is allowed to execute from a high-speed queue head on the Asynchronous schedule before continuing traversal of the Asynchronous schedule. Valid values are 1h to 3h. Software must not write a zero to this bit when Park Mode Enable is a one as this will result in undefined behavior. NOTE: Asynchronous Park Capability is not supported. 0h RW Light Host Controller Reset (light_hcreset): This control bit allows the driver to reset the EHCI controller without affecting the state of the ports or the relationship to the companion host controllers. For example, the PORSTC registers should not be reset to their default values and the CF bit setting should not go to zero (retaining port ownership relationships).A host software read of this bit as zero indicates the Light Host Controller Reset has completed and it is safe for host software to re-initialize the host controller. A host software read of this bit as a one indicates the Light Host Controller Reset has not yet completed. If not implemented a read of this field will always return a zero. NOTE: this control bit is supported and resets the EHCI List Processor Master Controller Unit. 6 0h RW Interrupt on Async Advance Doorbell (intr_on_async_advance_drbell): This bit is used as a doorbell by software to tell the host controller to issue an interrupt the next time it advances asynchronous schedule. Software must write a 1 to this bit to ring the doorbell. When the host controller has evicted all appropriate cached schedule state, it sets the Interrupt on Async Advance status bit in the USBSTS register. If the Interrupt on Async Advance Enable bit in the USBINTR register is a one then the host controller will assert an interrupt at the next interrupt threshold. The host controller sets this bit to a zero after it has set the Interrupt on Async Advance status bit in the USBSTS register to a one. Software should not write a one to this bit when the asynchronous schedule is disabled. Doing so will yield undefined results. 5 0h RW Asynchronous Schedule Enable (async_schedule_enable): This bit controls whether the host controller skips processing the Asynchronous Schedule. Values mean: 0: Do not process the Asynchronous Schedule 1: Use the ASYNCLISTADDR register to access the Asynchronous Schedule 27:24 9:8 7 Intel® Quark™ SoC X1000 Datasheet 554 August 2015 Document Number: 329676-005US USB 2.0—Intel® Quark™ SoC X1000 Bit Range Default & Access 4 3:2 1 0 16.6.2.5 Field Name (ID): Description 0h RW Periodic Schedule Enable (periodic_schedule_enable): This bit controls whether the host controller skips processing the Periodic Schedule. Values mean: 0: Do not process the Periodic Schedule 1: Use the PERIODICLISTBASE register to access the Periodic Schedule 0h RW Frame List Size (frame_list_size): This field is RW only if Programmable Frame List Flag in the HCCPARAMS registers is set to a one. This field specifies the size of the frame list. The size the frame list controls which bits in the Frame Index Register should be used for the Frame List Current index. Values mean: 00: 1024 elements (4096) Default value 01: 512 elements (2048 ) 10: 256 elements (1024 ) for resource-constrained environments 11: Reserved 0h RW Host Controller Reset (hcreset): This control bit is used by software to reset host controller. The effects of this on Root Hub registers are similar to a Chip Hardware Reset. When software writes a one to this bit, the Host Controller resets its internal pipelines, timers, counters, state machines, etc. to their initial value. Any transaction currently in progress on USB is immediately terminated. A USB reset is not driven on downstream ports. PCI Configuration registers are not affected by this reset. All operational registers, including port registers and port state machines are set to their initial values. Port ownership reverts to the companion host controller(s). This bit is set to zero by the Host Controller when the reset process is complete. Software cannot terminate the reset process early by writing a zero to this register. Software should not set this bit to a one when the HCHalted bit in the USBSTS register is a zero. Attempting to reset an actively running host controller will result in undefined behavior. 0h RW Run/Stop bit (run_stop): 1: Run 0: Stop When set to a 1, the Host Controller proceeds with execution of the schedule. The Host Controller continues execution as long as this bit is set to a 1. When this bit is set to 0, the Host Controller completes the current and any actively pipelined transactions on the USB and then halts. The Host Controller must halt within 16 micro-frames after software clears the Run bit. The HC Halted bit in the status register indicates when the Host Controller has finished its pending pipelined transactions and has entered the stopped state. Software must not write a one to this field unless the host controller is in the Halted state (i.e. HCHalted in the USBSTS register is a one). Doing so will yield undefined results. USB Status (USBSTS)—Offset 14h This register indicates pending interrupts and various states of the Host Controller. The status resulting from a transaction on the serial bus is not indicated in this register. Access Method Type: Memory Mapped I/O Register (Size: 32 bits) Offset: [BAR0] + 14h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:3] + 10h Default: 00001000h August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 555 Intel® Quark™ SoC X1000—USB 2.0 Bit Range Default & Access 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 usbint 0 usberrint 0 frame_list_rollover 0 0 port_change_detect 0 host_system_error 0 4 intr_on_async_advance 0 8 reserved_11_6 0 12 hchalted 0 16 reclamation 0 20 async_schedule_status 0 24 reserved_31_16 0 28 periodic_schedule_status 31 Field Name (ID): Description 0h RO reserved_31_16: Reserved bits. These bits are reserved and should be set to zero. 0h RO Asynchronous Schedule Status (async_schedule_status): The bit reports the current real status of the Asynchronous Schedule. If this bit is a zero then the status of the Asynchronous Schedule is disabled. If this bit is a one then the status of the Asynchronous Schedule is enabled. The Host Controller is not required to immediately disable or enable the Asynchronous Schedule when software transitions the Asynchronous Schedule Enable bit in the USBCMD register. When this bit and the Asynchronous Schedule Enable bit are the same value, the Asynchronous Schedule is either enabled (1) or disabled (0). 14 0h RO Periodic Schedule Status (periodic_schedule_status): The bit reports the current real status of the Periodic Schedule. If this bit is a zero then the status of the Periodic Schedule is disabled. If this bit is a one then the status of the Periodic Schedule is enabled. The Host Controller is not required to immediately disable or enable the Periodic Schedule when software transitions the Periodic Schedule Enable bit in the USBCMD register. When this bit and the Periodic Schedule Enable bit are the same value, the Periodic Schedule is either enabled (1) or disabled (0). 13 0h RO Reclamation (reclamation): This bit is used to detect an empty asynchronous schedule. 12 1h RO HcHalted (hchalted): This bit is a zero whenever the Run/Stop bit is a one. The Host Controller sets this bit to one after it has stopped executing as a result of the Run/Stop bit being set to 0, either by software or by the Host Controller hardware (e.g. internal error). 11:6 0h RO reserved_11_6: Reserved bits. These bits are reserved and should be set to zero. 31:16 15 5 4 3 Intel® Quark™ SoC X1000 Datasheet 556 0h RW/1C Interrupt on Async Advance (intr_on_async_advance): System software can force the host controller to issue an interrupt the next time the host controller advances the asynchronous schedule by writing a one to the Interrupt on Async Advance Doorbell bit in the USBCMD register. This status bit indicates the assertion of that interrupt source. 0h RW/1C Host System Error (host_system_error): The Host Controller sets this bit to 1 when a serious error occurs during a host system access involving the Host Controller module. In a PCI system, conditions that set this bit to 1 include PCI Parity error, PCI Master Abort, and PCI Target Abort. When this error occurs, the Host Controller clears the Run/Stop bit in the Command register to prevent further execution of the scheduled TDs. 0h RW/1C Frame List Rollover (frame_list_rollover): The Host Controller sets this bit to a one when the Frame List Index rolls over from its maximum value to zero. The exact value at which the rollover occurs depends on the frame list size. For example, if the frame list size (as programmed in the Frame List Size field of the USBCMD register) is 1024, the Frame Index Register rolls over every time FRINDEX[13] toggles. Similarly, if the size is 512, the Host Controller sets this bit to a one every time FRINDEX[12] toggles. August 2015 Document Number: 329676-005US USB 2.0—Intel® Quark™ SoC X1000 Bit Range Default & Access Field Name (ID): Description 0h RW/1C Port Change Detect (port_change_detect): The Host Controller sets this bit to a one when any port for which the Port Owner bit is set to zero has a change bit transition from a zero to a one or a Force Port Resume bit transition from a zero to a one as a result of a J-K transition detected on a suspended port. This bit will also be set as a result of the Connect Status Change being set to a one after system software has relinquished ownership of a connected port by writing a one to a port's Port Owner bit. On a D3 to D0 transition of the EHCI HC device, this bit is loaded with the OR of all of the PORTSC change bits (including: Force port resume, over-current change, enable/ disable change and connect status change). 1 0h RW/1C USB Error Interrupt (usberrint): The Host Controller sets this bit to 1 when completion of a USB transaction results in an error condition (e.g., error counter underflow). If the TD on which the error interrupt occurred also had its IOC bit set, both this bit and USBINT bit are set. Refer to EHCI Specification for a list of the USB errors that will result in this bit being set to a one. 0 0h RW/1C USB Interrupt (usbint): The Host Controller sets this bit to 1 on the completion of a USB transaction, which results in the retirement of a Transfer Descriptor that had its IOC bit set. The Host Controller also sets this bit to 1 when a short packet is detected (actual number of bytes received was less than the expected number of bytes). 2 16.6.2.6 USB Interrupt Enable (USBINTR)—Offset 18h This register enables and disables reporting of the corresponding interrupt to the software. When a bit is set and the corresponding interrupt is active, an interrupt is generated to the host. Interrupt sources that are disabled in this register still appear in the USBSTS to allow the software to poll for events. Access Method Type: Memory Mapped I/O Register (Size: 32 bits) Offset: [BAR0] + 18h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:3] + 10h Default: 00000000h 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Bit Range Default & Access 4 0 0 0 0 0 0 0 0 0 usbint_enable 0 8 usberrint_enable 0 12 port_change_intr_enable 0 16 host_system_err_enable 0 20 frame_list_rollover_enable 0 24 reserved_31_6 0 28 intr_on_async_advance_enable 31 Field Name (ID): Description 31:6 0h RO reserved_31_6: Reserved bits. These bits are reserved and should be set to zero. 5 0h RW Interrupt on Async Advance Enable (intr_on_async_advance_enable): When this bit is a one, and the Interrupt on Async Advance bit in the USBSTS register is a one, the host controller will issue an interrupt at the next interrupt threshold. The interrupt is acknowledged by software clearing the Interrupt on Async Advance bit. August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 557 Intel® Quark™ SoC X1000—USB 2.0 Bit Range 16.6.2.7 Default & Access Field Name (ID): Description 4 0h RW Host System Error Enable (host_system_err_enable): When this bit is a one, and the Host System Error Status bit in the USBSTS register is a one, the host controller will issue an interrupt. The interrupt is acknowledged by software clearing the Host System Error bit. 3 0h RW Frame List Rollover Enable (frame_list_rollover_enable): When this bit is a one, and the Frame List Rollover bit in the USBSTS register is a one, the host controller will issue an interrupt. The interrupt is acknowledged by software clearing the Frame List Rollover bit 2 0h RW Port Change Interrupt Enable (port_change_intr_enable): When this bit is a one, and the Port Change Detect bit in the USBSTS register is a one, the host controller will issue an interrupt. The interrupt is acknowledged by software clearing the Port Change Detect bit. 1 0h RW USB Error Interrupt Enable (usberrint_enable): When this bit is a one, and the USBERRINT bit in the USBSTS register is a one, the host controller will issue an interrupt at the next interrupt threshold. The interrupt is acknowledged by software clearing the USBERRINT bit. 0 0h RW USB Interrupt Enable (usbint_enable): When this bit is a one, and the USBINT bit in the USBSTS register is a one, the host controller will issue an interrupt at the next interrupt threshold. The interrupt is acknowledged by software clearing the USBINT bit. USB Frame Index (FRINDEX)—Offset 1Ch This register is used by the host controller to index into the periodic frame list. Access Method Type: Memory Mapped I/O Register (Size: 32 bits) Offset: [BAR0] + 1Ch BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:3] + 10h Default: 00000000h 31 28 0 0 0 24 0 0 0 0 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 0 Bit Range 31:14 Intel® Quark™ SoC X1000 Datasheet 558 Default & Access 0h RO 4 0 0 0 0 0 0 0 0 0 frame_index reserved_31_14 0 Field Name (ID): Description reserved_31_14: Reserved bits. These bits are reserved and should be set to zero. August 2015 Document Number: 329676-005US USB 2.0—Intel® Quark™ SoC X1000 Bit Range Default & Access Field Name (ID): Description 0h RW Frame Index (frame_index): The value of this register increments at the end of each time frame (e.g. micro-frame). Bits [N:3] are used for the Frame List current index. This means that each location of the frame list is accessed 8 times (frames or micro-frames) before moving to the next index. The following illustrates values of N based on the value of the Frame List Size field in the USBCMD register. USBCMD[Frame List Size] Number Elements N USBCMD[Frame List Size] = 00 (1024), N = 12 USBCMD[Frame List Size] = 01 (512), N = 11 USBCMD[Frame List Size] = 10 (256), N = 10 USBCMD[Frame List Size] = 11 (Reserved) This register must be written as a DWord. Byte writes produce undefined results. This register cannot be written unless the Host Controller is in the Halted state as indicated by the HCHalted bit in USBSTS register. A write to this register while the Run/Stop bit of USBCMD register is set to a one produces undefined results. Writes to this register also affect the SOF value. 13:0 16.6.2.8 4 Gigabyte Memory Segment Selector (CTRLDSSEGMENT)—Offset 20h Access Method Type: Memory Mapped I/O Register (Size: 32 bits) Offset: [BAR0] + 20h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:3] + 10h Default: 00000000h 31 0 0 0 24 0 0 0 0 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 0 4 0 0 0 0 0 0 0 0 0 seg_4g_selector 0 28 Bit Range 31:0 16.6.2.9 Default & Access Field Name (ID): Description 0h RO 4 Gigabyte Memory Segment Selector (seg_4g_selector): This 32-bit register corresponds to the most significant address bits [63:32] for all EHCI data structures. If the 64-bit Addressing Capability field in HCCPARAMS is a zero, then this register is not used. Software cannot write to it and a read from this register will return zeros. If the 64-bit Addressing Capability field in HCCPARAMS is a one, then this register is used with the link pointers to construct 64-bit addresses to EHCI control data structures. This register allows the host software to locate all control data structures within the same 4 Gigabyte memory segment. NOTE: 64-bit Addressing is not supported Periodic Frame List Base Address (PERIODICLISTBASE)—Offset 24h Access Method Type: Memory Mapped I/O Register (Size: 32 bits) Offset: [BAR0] + 24h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:3] + 10h Default: 00000000h August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 559 Intel® Quark™ SoC X1000—USB 2.0 31 0 0 0 24 0 0 0 0 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 0 4 0 Bit Range 16.6.2.10 0 0 0 0 0 0 0 0 reserved_11_0 base_address 0 28 Default & Access Field Name (ID): Description 31:12 0h RW Base Address (base_address): This field contains bits [31:12]of the 32 bit address of the Periodic Frame List in the system memory. System software loads this register prior to starting the schedule execution by the Host Controller. The memory structure referenced by this physical memory pointer is assumed to be 4-Kbyte aligned. The contents of this register are combined with the Frame Index Register (FRINDEX) to enable the Host Controller to step through the Periodic Frame List in sequence. Writes must be DWord Writes. 11:0 0h RO reserved_11_0: Reserved bits. Must be written as 0s. During runtime the value of these bits is undefined. Asynchronous List Address (ASYNCLISTADDR)—Offset 28h Access Method Type: Memory Mapped I/O Register (Size: 32 bits) Offset: [BAR0] + 28h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:3] + 10h Default: 00000000h 0 0 0 24 0 0 0 0 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 0 4 0 0 lpl 0 28 Bit Range 16.6.2.11 0 0 0 0 0 0 0 reserved_4_0 31 Default & Access Field Name (ID): Description 31:5 0h RW Link Pointer Low (lpl): This field contains bit [31:5] of the address of the next asynchronous queue head to be executed. The memory structure referenced by this physical memory pointer is assumed to be 4-Kbyte aligned. The contents of this register are combined with the Frame Index Register (FRINDEX) to enable the Host Controller to step through the Periodic Frame List in sequence. This field may only reference a Queue Head (QH). 4:0 0h RO reserved_4_0: Reserved bits. These bits are reserved and their value has no effect on operation. Configure Flag (CONFIGFLAG)—Offset 50h This register is in the auxiliary power well. It is only reset by hardware when the auxiliary power is initially applied or in response to a host controller reset. Access Method Intel® Quark™ SoC X1000 Datasheet 560 August 2015 Document Number: 329676-005US USB 2.0—Intel® Quark™ SoC X1000 Type: Memory Mapped I/O Register (Size: 32 bits) Offset: [BAR0] + 50h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:3] + 10h Default: 00000000h 31 0 0 0 24 0 0 0 0 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 4 0 0 0 0 0 0 0 0 0 Bit Range Default & Access 31:1 0 16.6.2.12 0 cf reserved_31_1 0 28 Field Name (ID): Description 0h RO reserved_31_1: Reserved bits. These bits are reserved and should be set to zero. 0h RW Configure Flag (cf): Host software sets this bit as the last action in its process of configuring the Host Controller. This bit controls the default port-routing control logic. Bit values and side-effects are listed below. 0: Port routing control logic default-routes each port to an implementation dependent classic host controller. 1: Port routing control logic default-routes all ports to this host controller Port Status/Control[0-1] (PORTSC[0-1])—Offset 54h, Count 2, Stride 4h This register is in the auxiliary power well. It is only reset by hardware when the auxiliary power is initially applied or in response to a host controller reset. Access Method Type: Memory Mapped I/O Register (Size: 32 bits) Offset[0-1]: [BAR0] + 54h + [0-1]*4h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:3] + 10h Default: 00002000h Bit Range 31:25 Default & Access 0h RO August 2015 Document Number: 329676-005US 1 0 0 0 0 0 0 0 0 0 0 0 0 0 current_connect_status 0 port_enable_disable 0 connect_status_change 0 over_current_active 0 0 port_en_dis_change 0 over_current_change 0 suspend 0 force_port_resume 0 port_reset 0 4 suspend_using_l1 0 8 line_status suspend_status 0 pp 0 port_owner 0 12 port_indicator_ctrl 0 16 port_test_ctrl 0 wkcnnt_e 0 20 wkoc_e 0 24 device_address 0 28 wkdscnnt_e 31 Field Name (ID): Description Device Address (device_address): The 7-bit USB device address for the device attached to and immediately downstream of the associated root port. A value of zero indicates no device is present or support for this feature is not present. NOTE: This field is not supported. Intel® Quark™ SoC X1000 Datasheet 561 Intel® Quark™ SoC X1000—USB 2.0 Bit Range Default & Access Field Name (ID): Description 24:23 0h RO Suspend Status (suspend_status): These two bits are used by software to determine whether the most recent L1 suspend request was successful. NOTE: This field is not supported. 22 0h RW Wake on Over-current Enable (wkoc_e): Writing this bit to a one enables the port to be sensitive to over-current conditions as wake-up events. This field is zero if Port Power is zero. 21 0h RW Wake on Disconnect Enable (wkdscnnt_e): Writing this bit to a one enables the port to be sensitive to device disconnects as wake-up events. This field is zero if Port Power is zero. 20 0h RW Wake on Connect Enable (wkcnnt_e): Writing this bit to a one enables the port to be sensitive to device connects as wake-up events. This field is zero if Port Power is zero. 0h RW Port Test Control (port_test_ctrl): When this field is zero, the port is NOT operating in a test mode. A non-zero value indicates that it is operating in test mode and the specific test mode is indicated by the specific value. The encoding of the test mode bits are (0110 - 1111 are reserved): 0000: Test mode not enabled 0001: Test J_STATE 0010: Test K_STATE 0011: Test SE0_NAK 0100: Test Packet 0101: Test FORCE_ENABLE 00h RW Port Indicator Control (port_indicator_ctrl): Writing to these bits has no effect if the Port Indicator (P_INDICATOR) bit in the HCSPARAMS register is a zero. If P_INDICATOR bit is a one, then the bit encodings are: 00: Port indicators are off 01: Amber 10: Green 11: Undefined This field is zero if Port Power is zero. NOTE: Port Indicator is not supported. 1h RW Port Owner (port_owner): This bit unconditionally goes to a 0 when the Configured bit in the CONFIGFLAG register makes a 0b to 1b transition. This bit unconditionally goes to 1 whenever the Configured bit is zero. System software uses this field to release ownership of the port to a selected host controller (in the event that the attached device is not a high-speed device). Software writes a one to this bit when the attached device is not a high-speed device. A one in this bit means that a companion host controller owns and controls the port. 0h RW Port Power (pp): The function of this bit depends on the value of the Port Power Control (PPC) field in the HCSPARAMS register. The behavior is as follows: If PPC=0, PP=1 and RO: Host controller does not have port power control switches. Each port is hard-wired to power. If PPC=0, PP=1 or 0 and R/W: Host controller has port power control switches. This bit represents the current setting of the switch (0 = off, 1 = on). When power is not available on port (i.e. PP equals a 0),the port is non-functional and will not report attaches, detaches, etc. When an over-current condition is detected on a powered port and PPC is a one, the PP bit in each affected port may be transitioned by the host controller from a 1 to 0 (removing power from the port). NOTE: Per Port Power control is supported (PPC=1) 11:10 0h RO Line Status (line_status): These bits reflect the current logical levels of the D+ (bit 11) and D- (bit 10) signal lines. These bits are used for detection of low-speed USB devices prior to the port reset and enable sequence. This field is valid only when the port enable bit is zero and the current connect status bit is set to a one. The encoding of the bits are: Bits[11:10] USB State Interpretation 00: USB State is SE0, Not Low-speed device, perform EHCI reset 10: USB State is J-state, Not Low-speed device, perform EHCI reset 01: USB State is K-state, Low-speed device, release ownership of port 11: USB State is Undefined, Not Low-speed device, perform EHCI reset The value of this field is undefined if Port Power is zero. 9 0h RO Suspend using l1 (suspend_using_l1): NOTE: suspend using l1 is not supported as part of LPM. 19:16 15:14 13 12 Intel® Quark™ SoC X1000 Datasheet 562 August 2015 Document Number: 329676-005US USB 2.0—Intel® Quark™ SoC X1000 Bit Range Default & Access Field Name (ID): Description 0h RW Port Reset (port_reset): 1: Port is in Reset 0: Port is not in Reset When software writes a one to this bit (from a zero), the bus reset sequence as defined in the USB Specification Revision 2.0 is started. Software writes a zero to this bit to terminate the bus reset sequence. Software must keep this bit at a one long enough to ensure the reset sequence, as specified in the USB Specification Revision 2.0, completes. When software writes this bit to a one, it must also write a zero to the Port Enable bit. Note that when software writes a zero to this bit there may be a delay before the bit status changes to a zero. The bit status will not read as a zero until after the reset has completed. If the port is in high-speed mode after reset is complete, the host controller will automatically enable this port (e.g. set the Port Enable bit to a one). A host controller must terminate the reset and stabilize the state of the port within 2ms of software transitioning this bit from a one to a zero. For example: if the port detects that the attached device is high-speed during reset, then the host controller must have the port in the enabled state within 2ms of software writing this bit to a zero. The HCHalted bit in the USBSTS register should be a zero before software attempts to use this bit. The host controller may hold Port Reset asserted to a one when the HCHalted bit is a one. This field is zero if Port Power is zero. 0h RW Suspend (suspend): 1: Port in suspend state 0: Port not in suspend state Port Enabled Bit and Suspend bit of this register define the port states as follows: Bit [Port Enabled, Suspend]: Port State 0X: Disable 10: Enable 11: Suspend When in suspend state, downstream propagation of data is blocked on this port, except for port reset. The blocking occurs at the end of the current transaction, if a transaction was in progress when this bit was written to 1. In the suspend state, the port is sensitive to resume detection. Note that the bit status does not change until the port is suspended and that there may be a delay in suspending a port if there is a transaction currently in progress on the USB. A write of zero to this bit is ignored by the host controller. The host controller will unconditionally set this bit to a zero when: Software sets the Force Port Resume bit to a zero (from a one). Software sets the Port Reset bit to a one (from a zero). If host software sets this bit to a one when the port is not enabled (i.e. Port enabled bit is a zero) the results are undefined. This field is zero if Port Power is zero. 6 0h RW Force Port Resume (force_port_resume): 1: Resume detected/driven on port 0: No resume (K-state) detected/driven on port This functionality defined for manipulating this bit depends on the value of the Suspend bit. For example, if the port is not suspended (Suspend and Enabled bits are a one) and software transitions this bit to a one, then the effects on the bus are undefined. Software sets this bit to a 1 to drive resume signaling. The Host Controller sets this bit to a 1 if a J-to-K transition is detected while the port is in the Suspend state. When this bit transitions to a one because a J-to-K transition is detected, the Port Change Detect bit in the USBSTS register is also set to a one. If software sets this bit to a one, the host controller must not set the Port Change Detect bit. Note that when the EHCI controller owns the port, the resume sequence follows the defined sequence documented in the USB Specification Revision 2.0. The resume signaling (Full-speed 'K') is driven on the port as long as this bit remains a one. Software must appropriately time the Resume and set this bit to a zero when the appropriate amount of time has elapsed. Writing a zero (from one) causes the port to return to high-speed mode (forcing the bus below the port into a high-speed idle). This bit will remain a one until the port has switched to the high-speed idle. The host controller must complete this transition within 2 milliseconds of software setting this bit to a zero. This field is zero if Port Power is zero. 5 0h RW/1C Over Current Change (over_current_change): This bit gets set to a one when there is a change to Over-current Active. Software clears this bit by writing a one to this bit position. 4 0h RO 8 7 August 2015 Document Number: 329676-005US Over Current Active (over_current_active): 1: This port currently has an overcurrent condition 0: This port does not have an over-current condition This bit will automatically transition from a one to a zero when the over current condition is removed. Intel® Quark™ SoC X1000 Datasheet 563 Intel® Quark™ SoC X1000—USB 2.0 Bit Range Default & Access Field Name (ID): Description 0h RW/1C Port Enable/Disable Change (port_en_dis_change): 1: Port enabled/disabled status has changed 0: No change For the root hub, this bit gets set to a one only when a port is disabled due to the appropriate conditions existing at the EOF2 point Software clears this bit by writing a 1 to it. This field is zero if Port Power is zero. 0h RW Port Enable/Disable (port_enable_disable): 1: Enable 0: Disable Ports can only be enabled by the host controller as a part of the reset and enable. Software cannot enable a port by writing a one to this field. The host controller will only set this bit to a one when the reset sequence determines that the attached device is a high-speed device. Ports can be disabled by either a fault condition (disconnect event or other fault condition) or by host software. Note that the bit status does not change until the port state actually changes. There may be a delay in disabling or enabling a port due to other host controller and bus events. When the port is disabled (0) downstream propagation of data is blocked on this port, except for reset. This field is zero if Port Power is zero. 1 0h RW/1C Connect Status Change (connect_status_change): 1: Change in Current Connect Status 0: No change Indicates a change has occurred in the ports Current Connect Status. The host controller sets this bit for all changes to the port device connect status, even if system software has not cleared an existing connect status change. For example, the insertion status changes twice before system software has cleared the changed condition, hub hardware will be setting an already set bit. Software sets this bit to 0 by writing a 1 to it. This field is zero if Port Power is zero. 0 0h RO Current Connect Status (current_connect_status): 1: Device is present on port 0: No device is present This value reflects the current state of the port, and may not correspond directly to the event that caused the Connect Status Change bit (Bit 1) to be set. This field is zero if Port Power is zero. 3 2 16.6.2.13 Programmable Microframe Base Value (INSNREG00)—Offset 90h This register allows changing the microframe length value (default is microframe SOF = 125ms) to reduce the simulation time. Access Method Type: Memory Mapped I/O Register (Size: 32 bits) Offset: [BAR0] + 90h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:3] + 10h Default: 00000000h 28 0 0 0 24 0 0 0 0 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 0 Bit Range 31:14 Intel® Quark™ SoC X1000 Datasheet 564 Default & Access 00000h RO 4 0 uframe_count reserved_31_14 0 0 0 0 0 0 0 0 0 uframe_count_en 31 Field Name (ID): Description reserved_31_14: Reserved bits. These bits are reserved and should be set to zero. August 2015 Document Number: 329676-005US USB 2.0—Intel® Quark™ SoC X1000 Bit Range 16.6.2.14 Default & Access Field Name (ID): Description 13:1 0h RW uframe_count: 1-microframe counter with byte interface (8-bits). 0 0b RW uframe_count_en: 1-microframe counter is enabled when this bit is set to 1. Programmable Packet Buffer OUT/IN Thresholds (INSNREG01)— Offset 94h This register allows setting the packet buffer OUT/IN thresholds. The value specified by the thresholds is in number of DWORDs (32-bit entries). The minimum threshold amount that can be programmed is the highest possible INCRX burst value (INCR16) i.e the minimum OUT and IN threshold value should be 64 bytes (16 DWords). With the implemented packet buffer depth of 512 bytes, OUT and IN threshold values can be equal to the packet buffer depth only when isochronous/interrupt transactions are not initiated by the host controller. Access Method Type: Memory Mapped I/O Register (Size: 32 bits) Offset: [BAR0] + 94h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:3] + 10h Default: 00200020h 0 0 0 0 0 Bit Range 16.6.2.15 0 0 1 0 OUT_Threshold 0 20 Default & Access 16 0 0 0 0 12 0 0 0 0 8 0 0 0 0 4 0 0 1 0 0 0 0 0 0 IN_Threshold 0 24 reserved_31_24 0 28 reserved_15_8 31 Field Name (ID): Description 31:24 00h RO reserved_31_24: Reserved bits. These bits are reserved and should be set to zero. 23:16 20h RW Out Threshold (OUT_Threshold): The OUT threshold is used to start the USB transfer as soon as the OUT threshold amount of data is fetched from system memory. It is also used to disconnect the data fetch, if the threshold amount of space is not available in the Packet Buffer. 15:8 00h RO reserved_15_8: Reserved bits. These bits are reserved and should be set to zero. 7:0 20h RW IN Threshold (IN_Threshold): The IN threshold is used to start the memory transfer as soon as the IN threshold amount of data is available in the Packet Buffer. It is also used to disconnect the data write, if the threshold amount of data is not available in the Packet Buffer. Programmable Packet Buffer Depth (INSNREG02)—Offset 98h Access Method August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 565 Intel® Quark™ SoC X1000—USB 2.0 Type: Memory Mapped I/O Register (Size: 32 bits) Offset: [BAR0] + 98h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:3] + 10h Default: 00000080h 31 0 0 0 24 0 0 0 0 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 0 4 1 Bit Range 16.6.2.16 0 0 0 0 0 0 0 0 pkt_buffer_depth reserved_31_12 0 28 Default & Access Field Name (ID): Description 31:12 0h RO reserved_31_12: Reserved bits. These bits are reserved and should be set to zero. 11:0 80h RW Programmable Packet Buffer Depth (pkt_buffer_depth): The value specified here is the number of DWORDs (32-bit entries). Programmable Controller Settings (INSNREG03)—Offset 9Ch Access Method Type: Memory Mapped I/O Register (Size: 32 bits) Offset: [BAR0] + 9Ch BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:3] + 10h Default: 00002001h 0 0 0 0 Bit Range Default & Access 0 0 0 0 0 0 0 0 0 1 0 8 0 0 0 0 4 0 0 0 0 0 0 0 0 1 Break_Memory 0 12 Time_available_offset 0 16 Periodic_Frame_List 0 20 Tx_Tx_turnaround_dly 0 24 reserved_31_14 0 28 TestSE0 31 Field Name (ID): Description 31:14 0h RO reserved_31_14: Reserved bits. These bits are reserved and should be set to zero. 13 1h RW TestSE0 NAK (TestSE0): When set to 1 (default), the core ignores the line state checking when transmitting SOF during the SE0_NAK test mode. When Set to 0, the port state machine disables the port if it does not find the line state to be in SE0 when transmitting SOF during the SE0_NAK testing. While doing impedance measurement during the SE0_NAK testing, the line state could go to non SE0 forcing the core to disable the port. This bit is used to control the port behavior during this. Intel® Quark™ SoC X1000 Datasheet 566 August 2015 Document Number: 329676-005US USB 2.0—Intel® Quark™ SoC X1000 Bit Range 16.6.2.17 Default & Access Field Name (ID): Description 12:10 0h RW Transmit to Transmit turnaround delay (Tx_Tx_turnaround_dly): This field specifies the extra delays in phy_clks to be added to the Transmit to Transmit turnaround delay value maintained in the core. The default value of this register field is 0. This default value of 0 is sufficient for most PHYs. But for some PHYs which puts wait states during the token packet, it may be required to program a value greater than 0 to meet the transmit to transmit minimum turnaround time. The recommendation to use the default value of 0 and change it only if there is an issue with minimum transmit-totransmit turnaround time. This value should be programmed during core initialization and should not be changed afterwards. 9 0h RW Periodic Frame List Fetch (Periodic_Frame_List): Setting this bit will force the host controller to fetch the periodic frame list in every microframe of a frame. If not set, then the periodic frame list will be fetched only in microframe 0 of every frame. The default is 0 (not set). This bit can be changed only during core initialization and should not be changed afterwards. 8:1 0h RW Time Available Offset (Time_available_offset): This value indicates the additional number of bytes to be accommodated for the time-available calculation. The USB traffic on the bus can be started only when sufficient time is available to complete the packet within the EOF1 point. This time-available calculation is done in the hardware, and can be further offset by programming a value in this location. Note that time-available calculation is added for future flexibility and the application is not required to program this field by default. 0 1h RO Break Memory Transfer (Break_Memory): 1: Enables this function 0: Disables this function Used in conjunction with INSNREG01 to enable breaking memory transactions into chunks once the OUT/IN threshold value is reached. Programmable Controller Settings (INSNREG04)—Offset A0h Bits [2:0] are used only for debug purposes. Access Method Type: Memory Mapped I/O Register (Size: 32 bits) Offset: [BAR0] + A0h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:3] + 10h Default: 00000000h 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 0 0 0 0 Bit Range 31:6 Default & Access 0h RO August 2015 Document Number: 329676-005US 4 0 0 0 0 0 0 0 0 0 sys_res 0 12 port_enum 0 16 NAK 0 20 reserved_3 0 24 reserved_31_6 0 28 automatic_feature 31 Field Name (ID): Description reserved_31_6: Reserved bits. These bits are reserved and should be set to zero. Intel® Quark™ SoC X1000 Datasheet 567 Intel® Quark™ SoC X1000—USB 2.0 Bit Range 16.6.2.18 Default & Access Field Name (ID): Description 5 0h RW Automatic Suspend Feature (automatic_feature): 0: enables the automatic feature. The Suspend signal is deasserted (logic level 1) when run/stop is reset by software, but the hchalted bit is not yet set. 1: disables the automatic feature, which takes all ports out of suspend when software clears the run/stop bit. This is for backward compatibility. For systems where the host is halted without waking up all ports out of suspend, the port can become stuck because the PHYCLK is not running when the halt is programmed. To avoid this, the DWC H20AHB host core automatically pulls ports out of suspend when the host is halted by software. This bit is used to disable this automatic function. This is a functional bit. 4 0h RW NAK reload fix enabled (NAK): When 1 NAK reload fix disabled. This is a functional bit for backward compatibility with Synopsys USB 2.0 Host-AHB core Release 2.40c. 3 0h RO reserved_3: Reserved bits. These bits are reserved and should be set to zero. 2 0h RW Port Enumeration Time (port_enum): Scales down port enumeration time. This is a debug bit. 1:0 0h RW System Reset (sys_res): When sys_res[1]=1, HCCPARAMS bits 17,15:4 become writable. When sys_res[0]=1, HCCPARAMS register become writable Upon system reset, this field is 0. This is a debug bit. UTMI Configuration (INSNREG05)—Offset A4h This register gives access to implementation specific PHY vendor control and status registers. NOTE: Vendor control and status registers are not implemented. Read from Vendor Status will always return 0. Write to Vendor Control will have no effect. Access Method Type: Memory Mapped I/O Register (Size: 32 bits) Offset: [BAR0] + A4h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:3] + 10h Default: 00001000h 0 0 0 Bit Range 31:18 17 Intel® Quark™ SoC X1000 Datasheet 568 Default & Access 0h RO 0h RO/V 20 0 0 0 0 16 0 0 0 0 12 0 0 0 1 8 0 0 0 0 4 0 0 0 0 0 0 0 0 0 Vstatus 24 0 Vcontrol 0 VControlLoadM 0 Vport 28 0 reserved_31_18 0 Vbusy 31 Field Name (ID): Description reserved_31_18: Reserved bits. These bits are reserved and should be set to zero. Vbusy: Hardware indicator that a write to this register has occurred and the hardware is currently processing the operation defined by the data written. When processing is finished, this bit is cleared. August 2015 Document Number: 329676-005US USB 2.0—Intel® Quark™ SoC X1000 Bit Range Default & Access Field Name (ID): Description 16:13 0h RW Vport: Port number from/to the PHY Vendor Status and Control value is read/written in Vstatus field. Vport meaningful values depend on the number of ports implemented. Allowed values are 4'h1 and 4'h2, any other value will return Vstatus=8'h0. Once software writes to VPort, from that write onwards, any writes to this register is ignored. 12 1h RW Vendor Control Load (VControlLoadM): 0: Load. 1: NOP. 11:8 0h RW Vendor control register (Vcontrol): Not implemented - write to Vendor Control will have no effect. 7:0 0h RO Vendor Status register (Vstatus): Not implemented - read from Vendor Status will always return 0. 16.6.3 USB OHCI Table 108. Summary of Memory Mapped I/O Registers—BAR0 Offset Start Offset End Default Value Register ID—Description 0h 3h “OHCI Revision (HCREVISION)—Offset 0h” on page 570 00000010h 4h 7h “Host Controller Control (HCCONTROL)—Offset 4h” on page 570 00000000h 8h Bh “Host Controller Command Status (HCCMDSTATUS)—Offset 8h” on page 571 00000000h Ch Fh “Host Controller Interrupt Status (HCINTRSTATUS)—Offset Ch” on page 573 00000000h 10h 13h “Host Controller Interrupt Enable (HCINTRENABLE)—Offset 10h” on page 574 00000000h 14h 17h “Host Controller Interrupt Disable (HCINTRDISABLE)—Offset 14h” on page 575 00000000h 18h 1Bh “Host Controller Communication Area (HCHCCA)—Offset 18h” on page 576 00000000h 1Ch 1Fh “Host Controller Current Isochronous or Interrupt Endpoint (HCPRDCURED)— Offset 1Ch” on page 577 00000000h 20h 23h “Host Controller Current First Control Endpoint (HCCTRLHEADED)—Offset 20h” on 00000000h page 577 24h 27h “Host Controller Current Control Endpoint (HCCTRLCURED)—Offset 24h” on page 578 00000000h 28h 2Bh “Host Controller First Bulk Endpoint (HCBULKHEADED)—Offset 28h” on page 578 00000000h 2Ch 2Fh “Host Controller Current Bulk Endpoint (HCBULKCURED)—Offset 2Ch” on page 579 00000000h 30h 33h “Host Controller Last Completed Descriptor (HCDONEHEAD)—Offset 30h” on page 580 00000000h 34h 37h “Host Controller Frame Interval (HCFMINTERVAL)—Offset 34h” on page 580 00002EDFh 38h 3Bh “Host Controller Remaining Frame (HCFMREMAINING)—Offset 38h” on page 581 00000000h 3Ch 3Fh “Host Controller Frame Number (HCFMNUMBER)—Offset 3Ch” on page 582 00000000h 40h 43h “Host Controller Periodic List Start (HCPERIODICSTART)—Offset 40h” on page 583 00000000h 44h 47h “Host Controller LS Threshold (HCLSTHRESHOLD)—Offset 44h” on page 583 00000628h 48h 4Bh “Host Controller Root Hub Descriptor A (HCRHDESPA)—Offset 48h” on page 584 02000902h 4Ch 4Fh “Host Controller Root Hub Descriptor B (HCRHDESPB)—Offset 4Ch” on page 585 00000000h 50h 53h “Host Controller Root Hub Status (HCRHSTATUS)—Offset 50h” on page 586 00000000h 54h 57h “Host Controller Root Hub Port Status (HCRHPORTSTS)—Offset 54h” on page 587 00000000h August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 569 Intel® Quark™ SoC X1000—USB 2.0 16.6.3.1 OHCI Revision (HCREVISION)—Offset 0h Access Method Type: Memory Mapped I/O Register (Size: 32 bits) HCREVISION: [BAR0] + 0h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:4] + 10h Default: 00000010h 31 0 0 0 24 0 0 0 0 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 0 4 0 0 0 Bit Range Default & Access 000000h RO 31: 8 16.6.3.2 1 0 0 0 0 Description reserved_31_8 (reserved_31_8): Reserved bits. These bits are reserved and should be set to zero. 10h RO 7: 0 0 revision reserved_31_8 0 28 Revision (revision): This read-only field contains the BCD representation of the version of the HCI specification that is implemented by this HC. Host Controller Control (HCCONTROL)—Offset 4h The HCCONTROL register defines the operating modes for the Host Controller (HC). Most of the fields in this register are modified only by the Host Controller Driver (HCD), except hc_function_state and rmtwkup_connected. Access Method Type: Memory Mapped I/O Register (Size: 32 bits) HCCONTROL: [BAR0] + 4h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:4] + 10h Default: 00000000h 0 0 Bit Range Default & Access 31: 11 0h RO Intel® Quark™ SoC X1000 Datasheet 570 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ctrlbulk_serviceratio 0 periodiclist_enable 0 0 isoc_enable 0 4 ctrllist_enable 0 8 bulklist_enable 0 12 hc_function_state 0 16 intr_routing 0 20 rmtwkup_enable 0 24 reserved_31_11 0 28 rmtwkup_connected 31 Description reserved_31_11 (reserved_31_11): Reserved bits. These bits are reserved and should be set to zero. August 2015 Document Number: 329676-005US USB 2.0—Intel® Quark™ SoC X1000 Bit Range Default & Access Description 10 0h RW Remote Wakeup Enable (rmtwkup_enable): This bit is used by HCD to enable or disable the remote wakeup feature upon the detection of upstream resume signaling. When this bit is set and the resume_detected bit in HCINTRSTATUS is set, a remote wakeup is signaled to the host system. Setting this bit has no impact on the generation of hardware interrupts. 9 0h RW Remote Wakeup Connected (rmtwkup_connected): This bit indicates whether HC supports remote wakeup signaling. If remote wakeup is supported and used by the system it is the responsibility of system firmware to set this bit during POST. HC clears the bit upon a hardware reset but does not alter it upon a software reset. 8 0h RW Interrupt Routing (intr_routing): This bit determines the routing of interrupts generated by events registered in HCINTRSTATUS. If clear, all interrupts are routed to the normal host bus interrupt mechanism. If set, interrupts are routed to the System Management Interrupt. HCD clears this bit upon a hardware reset, but it does not alter this bit upon a software reset. HCD uses this bit as a tag to indicate the ownership of HC. 7: 6 0h RW Host Controller Functional State for USB (hc_function_state): 00: USBRESET 01: USBRESUME 10: USBOPERATIONAL 11: USBSUSPEND A transition to USBOPERATIONAL from another state causes SOF generation to begin 1ms later. HCD may determine whether HC has begun sending SOFs by reading the start_of_frame field of HCINTRSTATUS. This field may be changed by HC only when in the USBSUSPEND state. HC may move from the USBSUSPEND state to the USBRESUME state after detecting the resume signaling from a downstream port. HC enters USBSUSPEND after software reset, whereas it enters USBRESET after a hardware reset. The latter also resets the Root Hub and asserts subsequent reset signaling to downstream ports. 5 0h RW Bulk List Enable (bulklist_enable): This bit is set to enable the processing of the Bulk list in the next Frame. If cleared by HCD, processing of the Bulk list does not occur after the next SOF. HC checks this bit whenever it determines to process the list. When disabled, HCD may modify the list. If HCBULKCURED is pointing to an ED (Endpoint Descriptor) to be removed, HCD must advance the pointer by updating HCBULKCURED before re-enabling processing of the list. 0h RW Control List Enable (ctrllist_enable): This bit is set to enable the processing of the Control list in the next Frame. If cleared by HCD, processing of the Control list does not occur after the next SOF. HC must check this bit whenever it determines to process the list. When disabled, HCD may modify the list. If HCCTRLCURED is pointing to an ED to be removed, HCD must advance the pointer by updating HCCTRLCURED before reenabling processing of the list. 3 0h RW Isochronous Enable (isoc_enable): This bit is used by HCD to enable/disable processing of isochronous ED's. While processing the periodic list in a Frame, HC checks the status of this bit when it finds an Isochronous ED (F=1). If set (enabled), HC continues processing the ED's. If cleared (disabled), HC halts processing of the periodic list (which now contains only isochronous ED's) and begins processing the Bulk/Control lists. Setting this bit is guaranteed to take effect in the next Frame (not the current Frame). 2 0h RW Periodic List Enable (periodiclist_enable): This bit is set to enable the processing of the periodic list in the next Frame. If cleared by HCD, processing of the periodic list does not occur after the next SOF. HC must check this bit before it starts processing the list. 1: 0 0h RW Control Bulk Service Ratio (ctrlbulk_serviceratio): This specifies the service ratio between Control and Bulk ED's. Before processing any of the nonperiodic lists, HC must compare the ratio specified with its internal count on how many nonempty Control ED's have been processed, in determining whether to continue serving another Control ED or switching to Bulk ED's. The internal count will be retained when crossing the frame boundary. In case of reset, HCD is responsible for restoring this value. 4 16.6.3.3 Host Controller Command Status (HCCMDSTATUS)—Offset 8h The HCCMDSTATUS register is used by the Host Controller to receive commands issued by the Host Controller Driver, as well as reflecting the current status of the Host Controller. To the Host Controller Driver, it appears to be a 'write to set' register. The Host Controller must ensure that bits written as 1 become set in the register while bits August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 571 Intel® Quark™ SoC X1000—USB 2.0 written as 0 remain unchanged in the register. The Host Controller Driver may issue multiple distinct commands to the Host Controller without concern for corrupting previously issued commands. The Host Controller Driver has normal read access to all bits. The sch_overrun_cnt field indicates the number of frames with which the Host Controller has detected the scheduling overrun error. This occurs when the Periodic list does not complete before EOF. When a scheduling overrun error is detected, the Host Controller increments the counter and sets the sch_overrun field in the HCINTRSTATUS register. Access Method Type: Memory Mapped I/O Register (Size: 32 bits) HCCMDSTATUS: [BAR0] + 8h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:4] + 10h Default: 00000000h 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 0 0 0 0 0 0 0 0 0 hcreset 0 8 ctrllist_filled 0 12 bulklist_filled 0 16 ownerchange_req 0 20 reserved_15_4 0 24 reserved_31_18 0 28 sch_overrun_cnt 31 Bit Range Default & Access 31: 18 0h RO reserved_31_18 (reserved_31_18): Reserved bits. These bits are reserved and should be set to zero. 17: 16 0h RO Scheduling Overrun Count (sch_overrun_cnt): These bits are incremented on each scheduling overrun error. It is initialized to 00b and wraps around at 11b. This will be incremented when a scheduling overrun is detected even if sch_overrun in HCINTRSTATUS has already been set. This is used by HCD to monitor any persistent scheduling problems 15: 4 0h RO reserved_15_4 (reserved_15_4): Reserved bits. These bits are reserved and should be set to zero. 3 0h RW/1C Ownership Change Request (ownerchange_req): This bit is set by an OS HCD to request a change of control of the HC. When set HC will set the ownerchange_req field in HCINTRSTATUS. After the changeover, this bit is cleared and remains so until the next request from OS HCD. 0h RW BulkListFilled (bulklist_filled): This bit is used to indicate whether there are any TDs on the Bulk list. It is set by HCD whenever it adds a TD to an ED in the Bulk list. When HC begins to process the head of the Bulk list, it checks bulklist_filled. As long as bulklist_filled is 0, HC will not start processing the Bulk list. If bulklist_filled is 1, HC will start processing the Bulk list and will set bulklist_filled to 0. If HC finds a TD on the list, then HC will set bulklist_filled to 1 causing the Bulk list processing to continue. If no TD is found on the Bulk list, and if HCD does not set bulklist_filled, then bulklist_filled will still be 0 when HC completes processing the Bulk list and Bulk list processing will stop. 0h RW Control List Filled (ctrllist_filled): This bit is used to indicate whether there are any TDs on the Control list. It is set by HCD whenever it adds a TD to an ED in the Control list. When HC begins to process the head of the Control list, it checks ctrllist_filled. As long as ctrllist_filled is 0, HC will not start processing the Control list. If CF is 1, HC will start processing the Control list and will set ctrllist_filled to 0. If HC finds a TD on the list, then HC will set ctrllist_filled to 1 causing the Control list processing to continue. If no TD is found on the Control list, and if the HCD does not set ctrllist_filled, then ctrllist_filled will still be 0 when HC completes processing the Control list and Control list processing will stop. 2 1 Intel® Quark™ SoC X1000 Datasheet 572 Description August 2015 Document Number: 329676-005US USB 2.0—Intel® Quark™ SoC X1000 Bit Range Default & Access Description 0h RW Host Controller Reset (hcreset): This bit is set by HCD to initiate a software reset of HC. Regardless of the functional state of HC, it moves to the USBSUSPEND state in which most of the operational registers are reset except those stated otherwise; e.g., the intr_routing field of HCCONTROL, and no Host bus accesses are allowed. This bit is cleared by HC upon the completion of the reset operation. The reset operation must be completed within 10ms. This bit, when set, should not cause a reset to the Root Hub and no subsequent reset signaling should be asserted to its downstream ports. 0 16.6.3.4 Host Controller Interrupt Status (HCINTRSTATUS)—Offset Ch This register provides status on various events that cause hardware interrupts. When an event occurs, Host Controller sets the corresponding bit in this register. When a bit becomes set, a hardware interrupt is generated if the interrupt is enabled in the HCINTRENABLE register and the mstr_intr_enable bit is set. The Host Controller Driver may clear specific bits in this register by writing 1 to bit positions to be cleared. The Host Controller Driver may not set any of these bits. The Host Controller will never clear the bit. Access Method Type: Memory Mapped I/O Register (Size: 32 bits) HCINTRSTATUS: [BAR0] + Ch BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:4] + 10h Default: 00000000h Bit Range 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 Default & Access 0 4 0 0 0 0 0 0 0 0 0 sch_overrun 0 start_of_frame 0 wrback_donehead 0 unrecov_err 24 0 resume_detected 0 reserved_29_07 reserved_31 0 rhub_stschange 28 0 owner_change 0 fmnum_overflow 31 Description 31 0h RO 30 0h RW/1C 29: 7 0h RO 6 0h RW/1C Root Hub Status Change (rhub_stschange): This bit is set when the content of HCRHSTATUS or the content of any of HCRHPORTSTS[NumberofDownstreamPort] has changed. 5 0h RW/1C Frame Number Overflow (fmnum_overflow): This bit is set when the MSb of HCFMNUMBER (bit 15) changes value, from 0 to 1 or from 1 to 0, and after HccaFrameNumber has been updated. 4 0h RW/1C Unrecoverable Error (unrecov_err): This bit is set when HC detects a system error not related to USB. HC should not proceed with any processing or signaling before the system error has been corrected. HCD clears this bit after HC has been reset. August 2015 Document Number: 329676-005US reserved_31 (reserved_31): Reserved bits. These bits are reserved and should be set to zero. Ownership Change (owner_change): This bit is set by HC when HCD sets the ownerchange_req field in HCCMDSTATUS. This event, when unmasked, will always generate a System Management Interrupt (SMI) immediately. This bit is tied to 0 when the SMI pin is not implemented. NOTE: OHCI SMIs are ignored by the system. reserved_29_07 (reserved_29_07): Reserved bits. These bits are reserved and should be set to zero. Intel® Quark™ SoC X1000 Datasheet 573 Intel® Quark™ SoC X1000—USB 2.0 Bit Range 16.6.3.5 Default & Access Description 3 0h RW/1C Resume Detected (resume_detected): This bit is set when HC detects that a device on the USB is asserting resume signaling. It is the transition from no resume signaling to resume signaling causing this bit to be set. This bit is not set when HCD sets the USBRESUME state. 2 0h RW/1C Start of Frame (start_of_frame): This bit is set by HC at each start of a frame and after the update of HccaFrameNumber. HC also generates a SOF token at the same time. 1 0h RW/1C Writeback Done Head (wrback_donehead): This bit is set immediately after HC has written HCDONEHEAD to HccaDoneHead. Further updates of the HccaDoneHead will not occur until this bit has been cleared. HCD should only clear this bit after it has saved the content of HccaDoneHead. 0 0h RW/1C Scheduling Overrun (sch_overrun): This bit is set when the USB schedule for the current Frame overruns and after the update of HccaFrameNumber. A scheduling overrun will also cause the sch_overrun_cnt of HCCMDSTATUS to be incremented. Host Controller Interrupt Enable (HCINTRENABLE)—Offset 10h Each enable bit in the HCINTRENABLE register corresponds to an associated interrupt bit in the HCINTRSTATUS register. The HCINTRENABLE register is used to control which events generate a hardware interrupt. When a bit is set in the HCINTRSTATUS register AND the corresponding bit in the HCINTRENABLE register is set AND the mstr_intr_enable bit is set, then a hardware interrupt is requested on the host bus. Writing a '1' to a bit in this register sets the corresponding bit, whereas writing a '0' to a bit in this register leaves the corresponding bit unchanged. On read, the current value of this register is returned. Access Method Type: Memory Mapped I/O Register (Size: 32 bits) HCINTRENABLE: [BAR0] + 10h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:4] + 10h Default: 00000000h Bit Range 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 0 4 0 0 0 0 0 0 0 0 0 sch_overrun_enb 0 wrback_donehead_enb 0 start_of_frame_enb 0 unrecov_err_enb 24 0 resume_detected_enb 0 rhub_stschange_enb mstr_intr_enable 0 fmnum_overflow_enb 28 0 owner_change_enb 0 reserved_29_07 31 Default & Access Description 31 0h RW/1S Master Interrupt Enable (mstr_intr_enable): A 0 written to this field is ignored by HC. A 1 written to this field enables interrupt generation due to events specified in the other bits of this register. This is used by HCD as a Master Interrupt Enable. 30 0h RW/1S Owner Change Enable (owner_change_enb): 0: Ignore 1: Enable interrupt generation due to Ownership Change. 29: 7 0h RO Intel® Quark™ SoC X1000 Datasheet 574 reserved_29_07 (reserved_29_07): Reserved bits. These bits are reserved and should be set to zero. August 2015 Document Number: 329676-005US USB 2.0—Intel® Quark™ SoC X1000 Bit Range 16.6.3.6 Default & Access Description 6 0h RW/1S Root Hub Status Change Enable (rhub_stschange_enb): 0: Ignore 1: Enable interrupt generation due to Root Hub Status Change 5 0h RW/1S Frame Number Overflow Enable (fmnum_overflow_enb): 0: Ignore 1: Enable interrupt generation due to Frame Number Overflow 4 0h RW/1S Unrecoverable Error Enable (unrecov_err_enb): 0: Ignore 1: Enable interrupt generation due to Unrecoverable Error 3 0h RW/1S Resume Detected Enable (resume_detected_enb): 0: Ignore 1: Enable interrupt generation due to Resume Detect 2 0h RW/1S Start of Frame Enable (start_of_frame_enb): 0: Ignore 1: Enable interrupt generation due to Start of Frame 1 0h RW/1S HCDONEHEAD Writeback Enable (wrback_donehead_enb): 0: Ignore 1: Enable interrupt generation due to HCDONEHEAD Writeback 0 0h RW/1S Scheduling Overrun Enable (sch_overrun_enb): 0: Ignore 1: Enable interrupt generation due to Scheduling Overrun Host Controller Interrupt Disable (HCINTRDISABLE)—Offset 14h Each disable bit in the HCINTRDISABLE register corresponds to an associated interrupt bit in the HCINTRSTATUS register. The HCINTRDISABLE register is coupled with the HCINTRENABLE register. Thus, writing a '1' to a bit in this register clears the corresponding bit in the HCINTRENABLE register, whereas writing a '0' to a bit in this register leaves the corresponding bit in the HCINTRENABLE register unchanged. On read, the current value of the HCINTRENABLE register is returned. Access Method Type: Memory Mapped I/O Register (Size: 32 bits) HCINTRDISABLE: [BAR0] + 14h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:4] + 10h Default: 00000000h Bit Range 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 0 4 0 0 0 0 0 0 0 0 0 sch_overrun_dbl 0 start_of_frame_dbl 0 wrback_donehead_dbl 0 unrecov_err_dbl 24 0 resume_detected_dbl 0 reserved_29_07 mstr_intr_enable 0 rhub_stschange_dbl 28 0 owner_change_dbl 0 fmnum_overflow_dbl 31 Default & Access Description 31 0h RW/1C Master Interrupt Enable (mstr_intr_enable): A '0' written to this field is ignored by HC. A '1' written to this field disables interrupt generation due to events specified in the other bits of this register. This field is set after a hardware or software reset. 30 0h RW/1C Owner Change Disable (owner_change_dbl): 0: Ignore 1: Disable interrupt generation due to Ownership Change 29: 7 0h RO August 2015 Document Number: 329676-005US reserved_29_07 (reserved_29_07): Reserved bits. These bits are reserved and should be set to zero. Intel® Quark™ SoC X1000 Datasheet 575 Intel® Quark™ SoC X1000—USB 2.0 Bit Range 16.6.3.7 Default & Access Description 6 0h RW/1C Root Hub Status Change Disable (rhub_stschange_dbl): 0: Ignore 1: Disable interrupt generation due to Root Hub Status Change 5 0h RW/1C Frame Number Overflow Disable (fmnum_overflow_dbl): 0: Ignore 1: Disable interrupt generation due to Frame Number Overflow 4 0h RW/1C Unrecoverable Error Disable (unrecov_err_dbl): 0: Ignore 1: Disable interrupt generation due to Unrecoverable Error 3 0h RW/1C Resume Detected Disable (resume_detected_dbl): 0: Ignore 1: Disable interrupt generation due to Resume Detect 2 0h RW/1C Start of Frame Disable (start_of_frame_dbl): 0: Ignore 1: Disable interrupt generation due to Start of Frame 1 0h RW/1C HCDONEHEAD Writeback Disable (wrback_donehead_dbl): 0: Ignore 1: Disable interrupt generation due to HCDONEHEAD Writeback 0 0h RW/1C Scheduling Overrun Disable (sch_overrun_dbl): 0: Ignore 1: Disable interrupt generation due to Scheduling Overrun Host Controller Communication Area (HCHCCA)—Offset 18h The HCHCCA register contains the physical address of the Host Controller Communication Area. The Host Controller Driver determines the alignment restrictions by writing all 1s to HCHCCA and reading the content of HCHCCA. The alignment is evaluated by examining the number of zeroes in the lower order bits. The minimum alignment is 256 bytes; therefore, bits 0 through 7 must always return '0' when read. Detailed description can be found in Chapter 4. This area is used to hold the control structures and the Interrupt table that are accessed by both the Host Controller and the Host Controller Driver. Access Method Type: Memory Mapped I/O Register (Size: 32 bits) HCHCCA: [BAR0] + 18h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:4] + 10h Default: 00000000h 28 0 0 0 24 0 0 0 0 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 hccabase 0 Bit Range 0 0 0 4 0 0 0 0 0 0 0 0 0 reserved_7_0 31 Default & Access Description 31: 8 0h RW Host Controller Communication Area Base (hccabase): This is the base address of the Host Controller Communication Area 7: 0 0h RO reserved_7_0 (reserved_7_0): Reserved bits. These bits are reserved and should be set to zero. Intel® Quark™ SoC X1000 Datasheet 576 August 2015 Document Number: 329676-005US USB 2.0—Intel® Quark™ SoC X1000 16.6.3.8 Host Controller Current Isochronous or Interrupt Endpoint (HCPRDCURED)—Offset 1Ch The HcPeriodCurrentED register contains the physical address of the current Isochronous or Interrupt Endpoint Descriptor. Access Method Type: Memory Mapped I/O Register (Size: 32 bits) HCPRDCURED: [BAR0] + 1Ch BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:4] + 10h Default: 00000000h 31 0 0 0 24 0 0 0 0 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 0 4 0 0 0 0 0 0 Bit Range 16.6.3.9 0 0 0 reserved_3_0 period_cur_ed 0 28 Default & Access Description 31: 4 0h RO Period Current ED (period_cur_ed): This is used by HC to point to the head of one of the Periodic lists which will be processed in the current Frame. The content of this register is updated by HC after a periodic ED has been processed. HCD may read the content in determining which ED is currently being processed at the time of reading. 3: 0 0h RO reserved_3_0 (reserved_3_0): Reserved bits. These bits are reserved and should be set to zero. Host Controller Current First Control Endpoint (HCCTRLHEADED)— Offset 20h The HCCTRLHEADED register contains the physical address of the first Endpoint Descriptor of the Control list. Access Method Type: Memory Mapped I/O Register (Size: 32 bits) HCCTRLHEADED: [BAR0] + 20h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:4] + 10h Default: 00000000h 0 0 0 24 0 0 0 0 20 0 0 0 0 16 0 0 ctrl_head_ed 0 28 August 2015 Document Number: 329676-005US 0 0 12 0 0 0 0 8 0 0 0 0 4 0 0 0 0 0 0 0 0 0 reserved_3_0 31 Intel® Quark™ SoC X1000 Datasheet 577 Intel® Quark™ SoC X1000—USB 2.0 Bit Range 16.6.3.10 Default & Access Description 31: 4 0h RW Control Head ED (ctrl_head_ed): HC traverses the Control list starting with the HCCTRLHEADED pointer. The content is loaded from HCCA during the initialization of HC. 3: 0 0h RO reserved_3_0 (reserved_3_0): Reserved bits. These bits are reserved and should be set to zero. Host Controller Current Control Endpoint (HCCTRLCURED)—Offset 24h The HCCTRLCURED register contains the physical address of the current Endpoint Descriptor of the Control list. Access Method Type: Memory Mapped I/O Register (Size: 32 bits) HCCTRLCURED: [BAR0] + 24h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:4] + 10h Default: 00000000h 0 0 0 24 0 0 0 0 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 0 4 0 0 0 0 0 0 0 ctrl_cur_ed 0 28 Bit Range 16.6.3.11 0 0 reserved_3_0 31 Default & Access Description 31: 4 0h RW Control Current ED (ctrl_cur_ed): This pointer is advanced to the next ED after serving the present one. HC will continue processing the list from where it left off in the last Frame. When it reaches the end of the Control list, HC checks the ctrllist_filled of in HCCMDSTATUS. If set, it copies the content of HCCTRLHEADED to HCCTRLCURED and clears the bit. If not set, it does nothing. HCD is allowed to modify this register only when the ctrllist_enable of HCCONTROL is cleared. When set, HCD only reads the instantaneous value of this register. Initially, this is set to zero to indicate the end of the Control list. 3: 0 0h RO reserved_3_0 (reserved_3_0): Reserved bits. These bits are reserved and should be set to zero. Host Controller First Bulk Endpoint (HCBULKHEADED)—Offset 28h The HCBULKHEADED register contains the physical address of the first Endpoint Descriptor of the Bulk list. Access Method Type: Memory Mapped I/O Register (Size: 32 bits) HCBULKHEADED: [BAR0] + 28h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:4] + 10h Default: 00000000h Intel® Quark™ SoC X1000 Datasheet 578 August 2015 Document Number: 329676-005US USB 2.0—Intel® Quark™ SoC X1000 31 0 0 0 24 0 0 0 0 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 0 4 0 0 0 0 0 0 Bit Range 16.6.3.12 0 0 0 reserved_3_0 bulk_head_ed 0 28 Default & Access Description 31: 4 0h RW Bulk Head ED (bulk_head_ed): HC traverses the Bulk list starting with the HCBULKHEADED pointer. The content is loaded from HCCA during the initialization of HC. 3: 0 0h RO reserved_3_0 (reserved_3_0): Reserved bits. These bits are reserved and should be set to zero. Host Controller Current Bulk Endpoint (HCBULKCURED)—Offset 2Ch The HCBULKCURED register contains the physical address of the current endpoint of the Bulk list. As the Bulk list will be served in a round-robin fashion, the endpoints will be ordered according to their insertion to the list. Access Method Type: Memory Mapped I/O Register (Size: 32 bits) HCBULKCURED: [BAR0] + 2Ch BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:4] + 10h Default: 00000000h 0 0 0 24 0 0 0 0 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 bulk_cur_ed 0 28 Bit Range 0 0 0 4 0 0 0 0 0 0 0 0 0 reserved_3_0 31 Default & Access Description 31: 4 0h RW Bulk Current ED (bulk_cur_ed): This is advanced to the next ED after the HC has served the present one. HC continues processing the list from where it left off in the last Frame. When it reaches the end of the Bulk list, HC checks the ctrllist_filled of HCCONTROL. If set, it copies the content of HCBULKHEADED to HCBULKCURED and clears the bit. If it is not set, it does nothing. HCD is only allowed to modify this register when the bulklist_enable of HCCONTROL is cleared. When set, the HCD only reads the instantaneous value of this register. This is initially set to zero to indicate the end of the Bulk list. 3: 0 0h RO reserved_3_0 (reserved_3_0): Reserved bits. These bits are reserved and should be set to zero. August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 579 Intel® Quark™ SoC X1000—USB 2.0 16.6.3.13 Host Controller Last Completed Descriptor (HCDONEHEAD)—Offset 30h The HCDONEHEAD register contains the physical address of the last completed Transfer Descriptor that was added to the Done queue. In normal operation, the Host Controller Driver should not need to read this register as its content is periodically written to the HCCA. Access Method Type: Memory Mapped I/O Register (Size: 32 bits) HCDONEHEAD: [BAR0] + 30h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:4] + 10h Default: 00000000h 0 0 0 24 0 0 0 0 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 0 4 0 0 0 0 0 0 donehead 0 28 Bit Range 16.6.3.14 Default & Access 0 0 0 reserved_3_0 31 Description 31: 4 0h RO Done Head (donehead): When a TD is completed, HC writes the content of HCDONEHEAD to the NextTD field of the TD. HC then overwrites the content of HCDONEHEAD with the address of this TD. This is set to zero whenever HC writes the content of this register to HCCA. It also sets the wrback_donehead of HCINTRSTATUS. 3: 0 0h RO reserved_3_0 (reserved_3_0): Reserved bits. These bits are reserved and should be set to zero. Host Controller Frame Interval (HCFMINTERVAL)—Offset 34h The HCFMINTERVAL register contains a 14-bit value which indicates the bit time interval in a Frame, (i.e., between two consecutive SOFs), and a 15-bit value indicating the Full Speed maximum packet size that the Host Controller may transmit or receive without causing scheduling overrun. The Host Controller Driver may carry out minor adjustment on the fm_interval by writing a new value over the present one at each SOF. This provides the programmability necessary for the Host Controller to synchronize with an external clocking resource and to adjust any unknown local clock offset. Access Method Type: Memory Mapped I/O Register (Size: 32 bits) HCFMINTERVAL: [BAR0] + 34h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:4] + 10h Default: 00002EDFh Intel® Quark™ SoC X1000 Datasheet 580 August 2015 Document Number: 329676-005US USB 2.0—Intel® Quark™ SoC X1000 0 0 0 24 0 0 0 0 Bit Range 0 0 0 0 16 0 0 0 0 12 0 1 0 8 1 1 1 0 reserved_15_14 0 Default & Access 4 1 1 0 1 0 1 1 1 1 Description 0h RW Frame Interval Toggle (fm_interval_tgl): HCD toggles this bit whenever it loads a new value to fm_interval. 30: 16 0h RW FS Largest Data Packet (fsmps): This field specifies a value which is loaded into the Largest Data Packet Counter at the beginning of each frame. The counter value represents the largest amount of data in bits which can be sent or received by the HC in a single transaction at any given time without causing scheduling overrun. The field value is calculated by the HCD. 15: 14 0h RO reserved_15_14 (reserved_15_14): Reserved bits. These bits are reserved and should be set to zero. 31 Frame Interval (fm_interval): This specifies the interval between two consecutive SOFs in bit times. The nominal value is set to be 11,999.HCD should store the current value of this field before resetting HC. By setting the hcreset field of HCCMDSTATUS as this will cause the HC to reset this field to its nominal value. HCD may choose to restore the stored value upon the completion of the Reset sequence. 2EDFh RW 13: 0 16.6.3.15 20 fsmps fm_interval_tgl 0 28 fm_interval 31 Host Controller Remaining Frame (HCFMREMAINING)—Offset 38h The HCFMREMAINING register is a 14-bit down counter showing the bit time remaining in the current Frame. NOTE: In OpenHCI 1.0a, the Frame Remaining and Frame Remaining Toggle bits in the HCFMREMAINING register are read-only to the Host Controller Driver. However, it is allowed to write to these bits for debugging purposes. Though these bits are writable, the Host Controller Driver must not write into these bits. Doing so yields undefined results. Access Method Type: Memory Mapped I/O Register (Size: 32 bits) HCFMREMAINING: [BAR0] + 38h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:4] + 10h Default: 00000000h 0 0 0 August 2015 Document Number: 329676-005US 0 0 0 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 0 4 0 0 0 0 0 0 0 0 0 fm_remaining 0 24 fm_remaining_tgl 0 28 reserved_30_14 31 Intel® Quark™ SoC X1000 Datasheet 581 Intel® Quark™ SoC X1000—USB 2.0 Bit Range Default & Access 31 30: 14 13: 0 16.6.3.16 Description 0h RW Frame Remaining Toggle (fm_remaining_tgl): This bit is loaded from the fm_interval_tgl field of fm_interval whenever fm_remaining reaches 0. This bit is used by HCD for the synchronization between fm_interval and fm_remaining. NOTE: Though these bits are writable, the Host Controller Driver must not write into these bits. Doing so yields undefined results. 0h RO reserved_30_14 (reserved_30_14): Reserved bits. These bits are reserved and should be set to zero. 0h RW Frame Remaining (fm_remaining): This counter is decremented at each bit time. When it reaches zero, it is reset by loading the fm_interval value specified in fm_interval at the next bit time boundary. When entering the USBOPERATIONAL state, HC re-loads the content with the fm_interval of HCFMINTERVAL and uses the updated value from the next SOF. NOTE: Though these bits are writable, the Host Controller Driver must not write into these bits. Doing so yields undefined results. Host Controller Frame Number (HCFMNUMBER)—Offset 3Ch The HCFMNUMBER register is a 16-bit counter. It provides a timing reference among events happening in the Host Controller and the Host Controller Driver. The Host Controller Driver may use the 16-bit value specified in this register and generate a 32bit frame number without requiring frequent access to the register. NOTE: In OpenHCI 1.0a, the Frame Number bits in the HCFMNUMBER register are read-only to the Host Controller Driver. However, it is allowed to write to these bits for debugging purposes. Though these bits are writable, the Host Controller Driver must not write into these bits. Doing so yields undefined results. Access Method Type: Memory Mapped I/O Register (Size: 32 bits) HCFMNUMBER: [BAR0] + 3Ch BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:4] + 10h Default: 00000000h 31 28 0 0 0 24 0 0 0 0 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 0 4 0 0 0 0 0 0 0 0 0 fmnumber reserved_31_16 0 Bit Range Default & Access 31: 16 0h RO reserved_31_16 (reserved_31_16): Reserved bits. These bits are reserved and should be set to zero. 0h RW Frame Number (fmnumber): This is incremented when fm_remaining is re-loaded. It will be rolled over to 0 after FFFF. When entering the USBOPERATIONAL state, this will be incremented automatically. The content will be written to HCCA after HC has incremented the FrameNumber at each frame boundary and sent a SOF but before HC reads the first ED in that Frame. After writing to HCCA, HC will set the start_of_frame in HCINTRSTATUS. NOTE: Though these bits are writable, the Host Controller Driver must not write into these bits. Doing so yields undefined results. 15: 0 Intel® Quark™ SoC X1000 Datasheet 582 Description August 2015 Document Number: 329676-005US USB 2.0—Intel® Quark™ SoC X1000 16.6.3.17 Host Controller Periodic List Start (HCPERIODICSTART)—Offset 40h The HcPeriodicStart register has a 14-bit programmable value which determines when is the earliest time HC should start processing the periodic list. Access Method Type: Memory Mapped I/O Register (Size: 32 bits) HCPERIODICSTART: [BAR0] + 40h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:4] + 10h Default: 00000000h 0 0 0 24 0 0 0 0 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 0 reserved_31_14 0 28 0 0 0 0 0 0 0 0 0 Bit Range Default & Access 31: 14 0h RO reserved_31_14 (reserved_31_14): Reserved bits. These bits are reserved and should be set to zero. 0h RW Periodic Start (periodic_start): After hardware reset, this field is cleared. This is then set by HCD during the HC initialization. The value is calculated roughly as 10% off from fm_interval. A typical value will be h3E67. When fm_remaining reaches the value specified, processing of the periodic lists will have priority over Control/Bulk processing. HC will therefore start processing the Interrupt list after completing the current Control or Bulk transaction that is in progress. 13: 0 16.6.3.18 4 periodic_start 31 Description Host Controller LS Threshold (HCLSTHRESHOLD)—Offset 44h The HcLSThreshold register contains an 11-bit value used by the Host Controller to determine whether to commit to the transfer of a maximum of 8-byte LS packet before EOF. Neither the Host Controller nor the Host Controller Driver is allowed to change this value. Access Method Type: Memory Mapped I/O Register (Size: 32 bits) HCLSTHRESHOLD: [BAR0] + 44h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:4] + 10h Default: 00000628h 0 0 0 24 0 0 0 0 20 0 0 reserved_31_12 0 28 August 2015 Document Number: 329676-005US 0 0 16 0 0 0 0 12 0 0 0 0 8 0 1 1 0 4 0 0 1 0 0 1 0 0 0 ls_threshold 31 Intel® Quark™ SoC X1000 Datasheet 583 Intel® Quark™ SoC X1000—USB 2.0 Bit Range Default & Access 31: 12 0h RO 16.6.3.19 reserved_31_12 (reserved_31_12): Reserved bits. These bits are reserved and should be set to zero. LS Threshold (ls_threshold): This field contains a value which is compared to the fm_remaining field prior to initiating a Low Speed transaction. The transaction is started only if fm_remaining this field. The value is calculated by HCD with the consideration of transmission and setup overhead. NOTE: Neither the Host Controller nor the Host Controller Driver are allowed to change this value. 0628h RW 11: 0 Description Host Controller Root Hub Descriptor A (HCRHDESPA)—Offset 48h The HCRHDESPA register is the first register of two describing the characteristics of the Root Hub. Access Method Type: Memory Mapped I/O Register (Size: 32 bits) HCRHDESPA: [BAR0] + 48h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:4] + 10h Default: 02000902h 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 4 0 0 0 0 0 0 0 1 0 ndp 1 pwr_switch_mode 0 8 device_type 0 12 no_pwr_switching 0 16 no_overcur_prot 0 20 overcur_prot_mode 0 24 pwron_to_pwrgood_time 0 28 reserved_23_13 31 Bit Range Default & Access Description 31: 24 02h RW Power On To Power Good Time (pwron_to_pwrgood_time): This byte specifies the duration HCD has to wait before accessing a powered-on port of the Root Hub. It is implementation-specific. The unit of time is 2ms. The duration is calculated as pwron_to_pwrgood_time*2ms. 23: 13 0h RO reserved_23_13 (reserved_23_13): Reserved bits. These bits are reserved and should be set to zero. 0h RW No Over Current Protection (no_overcur_prot): This bit describes how the overcurrent status for the Root Hub ports is reported. When this bit is cleared, the overcur_prot_mode field specifies global or per-port reporting. 0: Over-current status is reported collectively for all downstream ports 1: No overcurrent protection supported 11 1h RW Over Current Protection Mode (overcur_prot_mode): This bit describes how the overcurrent status for the Root Hub ports is reported. At reset, this field should reflect the same mode as pwr_switch_mode. This field is valid only if the no_overcur_prot field is cleared. 0: over-current status is reported collectively for all downstream ports 1: over-current status is reported on a per-port basis 10 0h RO Device Type (device_type): This bit specifies that the Root Hub is not a compound device. The Root Hub is not permitted to be a compound device. This field should always read/write 0. 12 Intel® Quark™ SoC X1000 Datasheet 584 August 2015 Document Number: 329676-005US USB 2.0—Intel® Quark™ SoC X1000 Bit Range Default & Access Description 0h RW No Power Switching (no_pwr_switching): These bits are used to specify whether power switching is supported or port are always powered. It is implementation-specific. When this bit is cleared, the pwr_switch_mode specifies global or per-port switching. 0: Ports are power switched 1: Ports are always powered on when the HC is powered on 8 1h RW Power Switching Mode (pwr_switch_mode): This bit is used to specify how the power switching of the Root Hub ports is controlled. It is implementation-specific. This field is only valid if the no_pwr_switching field is cleared. 0: all ports are powered at the same time. 1: each port is powered individually. This mode allows port power to be controlled by either the global switch or per-port switching. If the port_pwr_ctrlmask bit is set, the port responds only to port power commands (Set/ClearPortPower). If the port mask is cleared, then the port is controlled only by the global power switch (Set/ ClearGlobalPower). 7: 0 02h RO Number Downstream Ports (ndp): These bits specify the number of downstream ports (ndp) supported by the Root Hub. It is implementation-specific. The minimum number of ports is 1. 9 16.6.3.20 Host Controller Root Hub Descriptor B (HCRHDESPB)—Offset 4Ch The HCRHDESPB register is the second register of two describing the characteristics of the Root Hub. These fields are written during initialization to correspond with the system implementation. Access Method Type: Memory Mapped I/O Register (Size: 32 bits) HCRHDESPB: [BAR0] + 4Ch BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:4] + 10h Default: 00000000h 24 0 0 0 0 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 0 4 0 0 0 0 0 0 0 0 0 reserved_1 0 device_removable 0 reserved_16_3 28 0 reserved_31_18 0 port_pwr_ctrlmask 31 Bit Range Default & Access 31: 19 0h RO reserved_31_18 (reserved_31_18): Reserved bits. These bits are reserved and should be set to zero. 18: 17 0h RW Port Power Control Mask (port_pwr_ctrlmask): Each bit indicates if a port is affected by a global power control command when pwr_switch_mode is set. When set, the port's power state is only affected by per-port power control (Set/ClearPortPower). When cleared, the port is controlled by the global power switch (Set/ClearGlobalPower). If the device is configured to global switching mode (pwr_switch_mode=0), this field is not valid. bit 0: Reserved bit 1: Ganged-power mask on Port #1 bit 2: Ganged-power mask on Port #2 NOTE: Per Port Power Control is supported 16: 3 0h RO reserved_16_3 (reserved_16_3): Reserved bits. These bits are reserved and should be set to zero. August 2015 Document Number: 329676-005US Description Intel® Quark™ SoC X1000 Datasheet 585 Intel® Quark™ SoC X1000—USB 2.0 16.6.3.21 Bit Range Default & Access Description 2: 1 0h RW Device Removable (device_removable): Each bit is dedicated to a port of the Root Hub. When cleared, the attached device is removable. When set, the attached device is not removable. bit 0: Reserved bit 1: Device attached to Port #1 bit 2: Device attached to Port #2 0 0h RO reserved_1 (reserved_1): Reserved bit. These bits are reserved and should be set to zero. Host Controller Root Hub Status (HCRHSTATUS)—Offset 50h The HCRHSTATUS register is divided into two parts. The lower word of a Dword represents the Hub Status field and the upper word represents the Hub Status Change field. Reserved bits should always be written '0'. Access Method Type: Memory Mapped I/O Register (Size: 32 bits) HCRHSTATUS: [BAR0] + 50h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:4] + 10h Default: 00000000h 0 Bit Range 31 30: 18 17 16 Intel® Quark™ SoC X1000 Datasheet 586 Default & Access 20 0 0 0 0 16 0 0 12 0 0 0 0 0 0 8 0 0 0 0 4 0 0 0 0 0 0 0 0 0 overcur_ind 0 local_pwrsts 0 reserved_14_2 24 0 dev_rmtwkup_enb 0 reserved_30_18 0 overcur_ind_change 28 0 clr_rmtwkup_enb 0 local_pwrsts_change 31 Description 0h WO Clear Remote Wakeup Enable (clr_rmtwkup_enb): Writing a '1' clears dev_rmtwkup_enb. Writing a '0' has no effect. 0h RO reserved_30_18 (reserved_30_18): Reserved bits. These bits are reserved and should be set to zero. 0h RW/1S Over Current Indicator Change (overcur_ind_change): This bit is set by hardware when a change has occurred to the OCI field of this register. The HCD clears this bit by writing a 1.Writing a 0 has no effect. 0h RW/1S Local Power Status Change / SetGlobalPower (local_pwrsts_change): (read) Local Power Status Change. The Root Hub does not support the local power status feature and this bit is always read as 0. (write) SetGlobalPower. In global power mode (pwr_switch_mode=0), this bit is written to 1 to turn on power to all ports (clear pps). In per-port power mode, it sets pps only on ports whose port_pwr_ctrlmask bit is not set. Writing a 0 has no effect. August 2015 Document Number: 329676-005US USB 2.0—Intel® Quark™ SoC X1000 Bit Range Default & Access Device Remote Wakeup Enable / SetRemoteWakeupEnable (dev_rmtwkup_enb): (read) Device Remote Wakeup Enable. This bit enables a csc bit as a resume event, causing a USBSUSPEND to USBRESUME state transition and setting the resume_detected interrupt. 0: csc is not a remote wakeup event. 1: csc is a remote wakeup event. (write) SetRemoteWakeupEnable. Writing a '1' sets dev_rmtwkup_enb. Writing a '0' has no effect. 15 0h RW/1S 14: 2 0h RO reserved_14_2 (reserved_14_2): Reserved bits. These bits are reserved and should be set to zero. 1 0h RO Over Current Indicator (overcur_ind): This bit reports overcurrent conditions when the global reporting is implemented. When set, an overcurrent condition exists. When cleared, all power operations are normal. If per-port overcurrent protection is implemented this bit is always 0 0h RW/1S Local Power Status / ClearGlobalPower (local_pwrsts): (read)Local Power Status. The Root Hub does not support the local power status feature; thus, this bit is always read as 0. (write) ClearGlobalPower. In global power mode (pwr_switch_mode=0), this bit is written to 1 to turn off power to all ports (clear pps). In per-port power mode, it clears pps only on ports whose port_pwr_ctrlmask bit is not set. Writing a 0 has no effect. 0 16.6.3.22 Description Host Controller Root Hub Port Status (HCRHPORTSTS)—Offset 54h The HCRHPORTSTS[1:ndp] register is used to control and report port events on a perport basis. ndp represents the number of HCRHPORTSTS registers that are implemented in hardware. The lower word is used to reflect the port status, whereas the upper word reflects the status change bits. Some status bits are implemented with special write behavior (see below). If a transaction (token through handshake) is in progress when a write to change port status occurs, the resulting port status change must be postponed until the transaction completes. Reserved bits should always be written '0'. Access Method Type: Memory Mapped I/O Register (Size: 32 bits) HCRHPORTSTS: [BAR0] + 54h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:4] + 10h Default: 00000000h Bit Range Default & Access 31: 21 0h RO August 2015 Document Number: 329676-005US 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ccs 0 pss 0 pes 0 prs 0 0 poci 0 4 reserved_7_5 0 pps 0 8 lsda 0 12 reserved_15_10 0 csc 0 pesc 0 16 ocic 0 20 pssc 0 24 reserved_31_21 0 28 prsc 31 Description reserved_31_21 (reserved_31_21): Reserved bits. These bits are reserved and should be set to zero. Intel® Quark™ SoC X1000 Datasheet 587 Intel® Quark™ SoC X1000—USB 2.0 Bit Range Default & Access Description 20 0b RW/1C Port Reset Status Change (prsc): This bit is set at the end of the 10-ms port reset signal. The HCD writes a 1 to clear this bit. Writing a 0 has no effect. 0: port reset is not complete 1: port reset is complete 19 0b RW/1C Port Over Current Indicator Change (ocic): This bit is valid only if overcurrent conditions are reported on a per-port basis. This bit is set when Root Hub changes the poci bit. The HCD writes a 1 to clear this bit. Writing a 0 has no effect. 0: no change in poci 1: poci has changed 18 0b RW/1C Port Suspend Status Change (pssc): This bit is set when the full resume sequence has been completed. This sequence includes the 20-s resume pulse, LS EOP, and 3-ms resychronization delay. The HCD writes a 1 to clear this bit. Writing a 0 has no effect. This bit is also cleared when prsc is set. 0: resume is not completed 1: resume completed 17 0b RW/1C Port Enable Status Change (pesc): This bit is set when hardware events cause the pes bit to be cleared. Changes from HCD writes do not set this bit. The HCD writes a 1 to clear this bit. Writing a 0 has no effect. 0: no change in pes 1: change in pes 0b RW/1C Connect Status Change (csc): This bit is set whenever a connect or disconnect event occurs. The HCD writes a 1 to clear this bit. Writing a 0 has no effect. If ccs is cleared when a SetPortReset, SetPortEnable, or SetPortSuspend write occurs, this bit is set to force the driver to re-evaluate the connection status since these writes should not occur if the port is disconnected. 0: no change in ccs 1 = change in ccs Note: If the device_removable[ndp] bit is set, this bit is set only after a Root Hub reset to inform the system that the device is attached. 16 15: 10 0h RO reserved_15_10 (reserved_15_10): Reserved bits. These bits are reserved and should be set to zero. 0b RW/1C Speed Device Attached / Clear Port Power (lsda): (read) Low or Full Speed Device Attached. This bit indicates the speed of the device attached to this port. When set, a Low Speed device is attached to this port. When clear, a Full Speed device is attached to this port. This field is valid only when the ccs is set. 0: full speed device attached 1: low speed device attached (write) ClearPortPower. The HCD clears the pps bit by writing a 1 to this bit. Writing a 0 has no effect. 8 0b RW/1C Port Power Status / Set Port Power (pps): (read) Port Power Status. This bit reflects the port power status, regardless of the type of power switching implemented. This bit is cleared if an overcurrent condition is detected. HCD sets this bit by writing SetPortPower or SetGlobalPower. HCD clears this bit by writing ClearPortPower or ClearGlobalPower. Which power control switches are enabled is determined by pwr_switch_mode and PortPortControlMask[ndp]. In global switching mode , only Set/ClearGlobalPower controls this bit. In per-port power switching (pwr_switch_mode=1), if the port_pwr_ctrlmask[ndp] bit for the port is set, only Set/ ClearPortPower commands are enabled. If the mask is not set, only Set/ ClearGlobalPower commands are enabled. When port power is disabled, ccs, pes, pss, and prs should be reset. 0: port power is off 1: port power is on (write) SetPortPower. The HCD writes a 1 to set the pps bit. Writing a 0 has no effect. 7: 5 0h RO 9 Intel® Quark™ SoC X1000 Datasheet 588 reserved_7_5 (reserved_7_5): Reserved bits. These bits are reserved and should be set to zero. August 2015 Document Number: 329676-005US USB 2.0—Intel® Quark™ SoC X1000 Bit Range 4 3 2 1 0 Default & Access Description 0b RW/1C Port Reset Status / Set Port Reset (prs): (read) Port Reset Status. When this bit is set by a write to SetPortReset, port reset signaling is asserted. When reset is completed, this bit is cleared when prsc is set. This bit cannot be set if ccs is cleared. 0: port reset signal is not active 1: port reset signal is active (write) SetPortReset. The HCD sets the port reset signaling by writing a 1 to this bit. Writing a 0 has no effect. If ccs is cleared, this write does not set prs, but instead sets csc. This informs the driver that it attempted to reset a disconnected port. 0b RW/1C Port Over Current Indicator / Clear Suspend Status (poci): (read) Port Over Current Indicator. This bit is only valid when the Root Hub is configured in such a way that overcurrent conditions are reported on a per-port basis. If per-port overcurrent reporting is not supported, this bit is set to 0. If cleared, all power operations are normal for this port. If set an overcurrent condition exists on this port. This bit always reflects the overcurrent input signal 0: no overcurrent condition. 1: overcurrent condition detected. (write) ClearSuspendStatus. The HCD writes a 1 to initiate a resume. Writing a 0 has no effect. A resume is initiated only if pss is set. 0b RW/1C Port Suspend Status / Set Port Suspend (pss): Port Suspend Status. This bit indicates the port is suspended or in the resume sequence. It is set by a SetSuspendState write and cleared when pssc is set at the end of the resume interval. This bit cannot be set if ccs is cleared. This bit is also cleared when prsc is set at the end of the port reset or when the HC is placed in the USBRESUME state. If an upstream resume is in progress, it should propagate to the HC. 0: port is not suspended 1: port is suspended (write) SetPortSuspend. The HCD sets the pss bit by writing a 1 to this bit. Writing a 0 has no effect. If ccs is cleared, this write does not set pss; instead it sets csc. This informs the driver that it attempted to suspend a disconnected port. 0b RW/1C Port Enable Status / Set Port Enable (pes): (read) Port Enable Status. This bit indicates whether the port is enabled or disabled. The Root Hub may clear this bit when an overcurrent condition, disconnect event, switched-off power, or operational bus error such as babble is detected. This change also causes pesc to be set. HCD sets this bit by writing SetPortEnable and clears it by writing ClearPortEnable. This bit cannot be set when ccs is cleared. This bit is also set, if not already, at the completion of a port reset when prsc is set or port suspend when pssc is set. 0: port is disabled 1: port is enabled (write) SetPortEnable. The HCD sets pes by writing a 1. Writing a 0 has no effect. If ccs is cleared, this write does not set pes, but instead sets csc. This informs the driver that it attempted to enable a disconnected port. 0b RW/1C Current Connect Status / Clear Port Enable (ccs): (read) Current Connect Status. This bit reflects the current state of the downstream port. 0: no device connected 1: device connected (write) ClearPortEnable The HCD writes a 1 to this bit to clear the pes bit. Writing a 0 has no effect. The ccs is not affected by any write. Note: This bit is always read 1 when the attached device is non-removable (device_removable[ndp]). §§ August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 589 Intel® Quark™ SoC X1000—USB 2.0 Intel® Quark™ SoC X1000 Datasheet 590 August 2015 Document Number: 329676-005US SDIO/SD/eMMC—Intel® Quark™ SoC X1000 17.0 SDIO/SD/eMMC The Intel® Quark™ SoC X1000 provides an SDIO/SD/eMMC controller that supports a single port configurable as: • One SDIO 3.0 interface • One SD 3.0 interface • One eMMC 4.41 interface 3 17.1 Signal Descriptions See Chapter 2.0, “Physical Interfaces” for additional details. The signal description table has the following headings: • Signal Name: The name of the signal/pin • Direction: The buffer direction can be either input, output, or I/O (bidirectional) • Type: The buffer type found in Chapter 4.0, “Electrical Characteristics” • Description: A brief explanation of the signal’s function Table 109. SDIO/SD/eMMC Interface Signals Signal Name SD_CLK Direction/ Type O 3.3V I/O SD_DATA[7:0] 3.3V SD_CD_B 3.3V I Description SD Card Clock Clock frequency up to 50 MHz. SD Card Data Bidirectional port used to transfer data to and from SD/eMMC card. By default, after power up or reset, only D[0] is used for data transfer. A wider data bus can be configured for data transfer, using D[0]-D[7]. SD Card Detect Active low when a card is present. Floating (pulled high with internal PU) when a card is not present. SD_CMD I/O MG SD Card Command This signal is used for card initialization and transfer of commands. It has two modes—open-drain for initialization, and push-pull for fast command transfer. SD_WP I MG SD Card Write Protect Active high to protect from write. SD_LED O MG SD Card Access LED Control Controls the LED to indicate that the card is being accessed SD_PWR O MG SD Card Power Supply Control August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 591 Intel® Quark™ SoC X1000—SDIO/SD/eMMC 17.2 Features 17.2.1 SDIO/SD/eMMC Features Table 110 summarizes the SDIO/SD/eMMC supported/non-supported features. Table 110. SDIO/SD/eMMC Features Features Supported Meets SD Memory Card Specification version 3.0 Yes Meets SD Host Controller Standard Specification Version 3.0 Yes Meets SDIO card specification version 3.0 Yes Meets eMMC Specification version 4.41 Yes Supports both DMA and Non-DMA mode of operation Yes Supports SDMA Yes Supports ADMA1 and ADMA2 Yes eMMC supports 1 bit, 4 bit and 8 bit bus modes Yes SD/SDIO supports 1 bit and 4 bit bus modes Yes SDXC Capacity up to 2TB Yes High Speed (SD Clock up to 50 MHz - 25 MByte/s for SDIO/SD and 50 MByte/s for eMMC) Yes Integrated ADMA Controller Yes SD SPI mode Yes Multi SD/SDIO card Slots No Boot OS from SD/eMMC device (see Note) Yes SDIO Dual Voltage support 1.8V/3.3V No SDIO/SD UHS-I Support No Wakeup On Card Insertion No Note: 1. Must pair together with SPI chip. 2. Refer to the Intel® X1000 – Board Support Package (BSP) UEFI EMMC Patch on eMMC enabling for software portion. 17.2.2 SD 3.0/ SDIO 3.0 / eMMC 4.41 Interfaces This section provides a very high level overview of the SD, SDIO, eMMC 4.41 specification. Refer to the SD and eMMC specification for complete details. 17.2.2.1 SD 3.0 Bus Topology The SD Memory Card bus has a single master, single slave (card), synchronous topology (refer to Figure 33). During the initialization process, commands are sent to the card allowing the application to detect the card and assign logical addresses to the physical slot. All data communication in the Card Identification Mode uses the command line (CMD) only. The SD bus allows dynamic configuration of the number of data lines. After power up, by default, the SD Memory Card uses only D[0] for data transfer. After initialization the host can change the bus width (number of active data lines). This feature allows easy trade off between hardware cost and system performance. Note that while D[1:3] are not in use, the related host’s data lines should be in tri-state (input mode). Intel® Quark™ SoC X1000 Datasheet 592 August 2015 Document Number: 329676-005US SDIO/SD/eMMC—Intel® Quark™ SoC X1000 Figure 33. SD Memory Card Bus Topology CLK VDD    SD Host SD  Memory Card Vss D[3:0] CMD 17.2.2.2 SDIO 3.0 Interface The SDIO card interface is very much like the SD Memory Card interface. The SoC supports one SDIO card slot. Figure 34. SDIO Card Bus Topology    SD Host August 2015 Document Number: 329676-005US CLK CLK CMD CMD D[0] D[0] D[1] D[1]/Interrupt D[2] D[2]/Wait for Read D[3] CD/D[3] SD I/O Card Intel® Quark™ SoC X1000 Datasheet 593 Intel® Quark™ SoC X1000—SDIO/SD/eMMC 17.2.2.3 eMMC Interface Figure 35. eMMC Interface CLK CMD eMMC Host eMMC Device D[0:7] RST# 17.2.3 SDIO/SD/eMMC Host Controller The Secure Digital Host Controller 3.0 specification defines a standardized host controller for interfacing to eMMC devices, as well as Secure Digital memory and I/O cards. The specification encompasses the following: • A register map and register set • Data buffer model • Data movement model, including both Programmed I/O (PIO) and Direct Memory Access (DMA) • Three different DMA modes: — Single DMA (SDMA) — Advanced DMA Mode 1; this is linked list DMA with the restriction that data buffers must reside at 4k boundaries. — Advanced DMA Mode 2; this is linked list DMA with the restriction of 4k aligned data buffers removed; data buffers may reside at any arbitrary alignment. 64-bit addressing is also supported. • Interrupt model • Suspend and resume mechanism • Power state definition • Method for automatic generation of STOP_TRANSMISSION commands (Auto CMD12) • Test registers In short, the SD Host Controller specification defines a standard software model for accessing SD/SDIO/eMMC devices, and makes it possible for standards-compliant host controllers to work with off-the-shelf device drivers. Intel® Quark™ SoC X1000 Datasheet 594 August 2015 Document Number: 329676-005US SDIO/SD/eMMC—Intel® Quark™ SoC X1000 17.2.3.1 SD DMA A new DMA transfer algorithm, called ADMA (Advanced DMA), is defined in the SD Host Controller Standard Specification Version 2.00. The DMA algorithm defined in the SD Host Controller Standard Specification Version 1.00 is called SDMA (Single Operation DMA). SDMA had the disadvantage that a DMA Interrupt generated at every page boundary disturbs the CPU to reprogram the new system address. This SDMA algorithm forms a performance bottleneck by interruption at every page boundary. Only one SD command transaction can be executed per a SDMA operation. ADMA adopts a scatter-gather DMA algorithm, so that higher data transfer speed is available. The Host Driver can program a list of data transfers between system memory and SD card to the Descriptor Table before executing ADMA. It enables ADMA to operate without interrupting the Host Driver. There are two types of ADMA; ADMA1 and ADMA2. ADMA1 can support data transfer of only 4 KByte aligned data in system memory. ADMA2 improves the restriction so that data of any location and any size can be transferred in system memory. The format of Descriptor Table is different between them. The Host Controller Specification Ver2.00 defines ADMA2 as standard ADMA and recommends supporting ADMA2 rather than ADMA1. The SDIO/SD/eMMC controller supports all three flavors of DMA described in the SD Host Controller 2.0 specification - SDMA, ADMA1, and ADMA2. Note: Although the SD Host Controller Standard Specification Version 3.00 states that ADMA1 is not supported in Standard Host Controller versions 3.0 and latter, the SoC SDIO/SD/ eMMC controller supports both ADMA1 and ADMA2. 17.3 References The SDIO/SD/eMMC controller is a Secure Digital I/O (SDIO), Secure Digital (SD), MultiMediaCard (eMMC) host controller that is configured to comply with: • SD Specification Part 1 Physical Layer Specification version 3.00, April 16, 2009 https://www.sdcard.org • SD Specification Part E1 SDIO Specification version 3.00, December 16, 2010 https://www.sdcard.org • SD Specification Part A2 SD Host Controller Standard Specification version 3.00, February 18, 2010 https://www.sdcard.org • Embedded MultiMediaCard (eMMC) Product Standard v4.41, JESD84-A441 http:// www.jedec.org/. 17.4 Register Map See Chapter 5.0, “Register Access Methods” for additional information. August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 595 Intel® Quark™ SoC X1000—SDIO/SD/eMMC Figure 36. SDIO/SD/eMMC Register Map PCI Space CPU Core Host Bridge D:0,F:0 PCI CAM (I/O) Bus 0 SDIO/ eMMC PCI Headers D:20,F:0 PCI ECAM (Mem) I2C*/GPIO F:2 PCIe* D:23 SPI1 F:1 IO Fabric D:21 SPI0 F:0 RP0 F:0 RP0 F:1 BAR Legacy Bridge D:31, F:0 SDIO/eMMC Mem Registers SDIO/eMMC F:0 HSUART0 F:1 EHCI Host F:3 OCHI Host F:4 HSUART1 F:5 IO Fabric D:20 USB Device F:2 Memory Space MAC0 F:6 MAC1 F:7 17.5 PCI Configuration Registers Table 111. Summary of PCI Configuration Registers—0/20/0 Offset Start Offset End Default Value Register ID—Description 0h 1h “Vendor ID (VENDOR_ID)—Offset 0h” on page 597 8086h 2h 3h “Device ID (DEVICE_ID)—Offset 2h” on page 598 08A7h 4h 5h “Command Register (COMMAND_REGISTER)—Offset 4h” on page 598 0000h 6h 7h “Status Register (STATUS)—Offset 6h” on page 599 0010h 8h Bh “Revision ID and Class Code (REV_ID_CLASS_CODE)—Offset 8h” on page 599 08050110h Ch Ch “Cache Line Size (CACHE_LINE_SIZE)—Offset Ch” on page 600 00h Dh Dh “Latency Timer (LATENCY_TIMER)—Offset Dh” on page 600 00h Eh Eh “Header Type (HEADER_TYPE)—Offset Eh” on page 601 80h Intel® Quark™ SoC X1000 Datasheet 596 August 2015 Document Number: 329676-005US SDIO/SD/eMMC—Intel® Quark™ SoC X1000 Table 111. Offset Start Summary of PCI Configuration Registers—0/20/0 (Continued) Offset End Default Value Register ID—Description Fh Fh “BIST (BIST)—Offset Fh” on page 601 00h 10h 13h “Base Address Register (BAR0)—Offset 10h” on page 602 00000000h 28h 2Bh “Cardbus CIS Pointer (CARDBUS_CIS_POINTER)—Offset 28h” on page 602 00000000h 2Ch 2Dh “Subsystem Vendor ID (SUB_SYS_VENDOR_ID)—Offset 2Ch” on page 603 0000h 2Eh 2Fh “Subsystem ID (SUB_SYS_ID)—Offset 2Eh” on page 603 0000h 30h 33h “Expansion ROM Base Address (EXP_ROM_BASE_ADR)—Offset 30h” on page 603 00000000h 34h 37h “Capabilities Pointer (CAP_POINTER)—Offset 34h” on page 604 00000080h 3Ch 3Ch “Interrupt Line Register (INTR_LINE)—Offset 3Ch” on page 604 00h 3Dh 3Dh “Interrupt Pin Register (INTR_PIN)—Offset 3Dh” on page 605 00h 3Eh 3Eh “MIN_GNT (MIN_GNT)—Offset 3Eh” on page 605 00h 3Fh 3Fh “MAX_LAT (MAX_LAT)—Offset 3Fh” on page 605 00h 80h 80h “Capability ID (PM_CAP_ID)—Offset 80h” on page 606 01h 81h 81h “Next Capability Pointer (PM_NXT_CAP_PTR)—Offset 81h” on page 606 A0h 82h 83h “Power Management Capabilities (PMC)—Offset 82h” on page 606 4803h 84h 85h “Power Management Control/Status Register (PMCSR)—Offset 84h” on page 607 0008h 86h “PM CSR PCI-to-PCI Bridge Support Extension (PMCSR_BSE)—Offset 86h” on page 608 00h 87h 87h “Power Management Data Register (DATA_REGISTER)—Offset 87h” on page 608 00h A0h A0h “Capability ID (MSI_CAP_ID)—Offset A0h” on page 609 05h A1h A1h “Next Capability Pointer (MSI_NXT_CAP_PTR)—Offset A1h” on page 609 00h A2h A3h “Message Control (MESSAGE_CTRL)—Offset A2h” on page 609 0100h A4h A7h “Message Address (MESSAGE_ADDR)—Offset A4h” on page 610 00000000h A8h A9h “Message Data (MESSAGE_DATA)—Offset A8h” on page 610 0000h ACh AFh “Mask Bits for MSI (PER_VEC_MASK)—Offset ACh” on page 611 00000000h B0h B3h “Pending Bits for MSI (PER_VEC_PEND)—Offset B0h” on page 611 00000000h 86h 17.5.1 Vendor ID (VENDOR_ID)—Offset 0h Access Method Type: PCI Configuration Register (Size: 16 bits) VENDOR_ID: [B:0, D:20, F:0] + 0h Default: 8086h 15 0 0 0 8 0 0 0 4 0 1 0 0 0 0 0 1 1 0 value 1 12 Bit Range 15: 0 Default & Access 8086h RO August 2015 Document Number: 329676-005US Description Vendor ID (value): PCI Vendor ID for Intel Intel® Quark™ SoC X1000 Datasheet 597 Intel® Quark™ SoC X1000—SDIO/SD/eMMC 17.5.2 Device ID (DEVICE_ID)—Offset 2h Access Method Type: PCI Configuration Register (Size: 16 bits) DEVICE_ID: [B:0, D:20, F:0] + 2h Default: 08A7h 15 0 0 0 8 1 0 0 4 0 1 0 1 0 0 0 1 1 1 value 0 12 Bit Range Default & Access 08A7h RO 15: 0 17.5.3 Description Device ID (value): PCI Device ID Command Register (COMMAND_REGISTER)—Offset 4h Access Method Type: PCI Configuration Register (Size: 16 bits) COMMAND_REGISTER: [B:0, D:20, F:0] + 4h Default: 0000h 0 0 0 0 0 0 0 0 0 RSVD 0 MEMen 0 0 MasEn 0 4 RSVD 0 SERREn 0 8 RSVD 0 RSVD0 0 12 IntrDis 15 Bit Range Default & Access 15: 11 0h RO RSVD0 (RSVD0): Reserved 10 0b RW Interrupt Disable (IntrDis): Interrupt disable. Disables generation of interrupt messages in the PCI Express function. 1 =) disabled, 0 =) not disabled 9 0h RO Reserved (RSVD): Reserved. 8 0b RW SERR Enable (SERREn): When set, this bit enables the non-fatal and fatal errors detected by the function to be reported to the root complex. 7: 3 00h RO Reserved (RSVD): Reserved. 2 0b RW Bus Master Enable (MasEn): 0=)disables upstream requests 1=)enables upstream requests. 1 0b RW Memory Space Enable (MEMen): Device support for Memory transactions. 0 =) not supported. 1 =) supported. 0 0h RO Reserved (RSVD): Reserved. Intel® Quark™ SoC X1000 Datasheet 598 Description August 2015 Document Number: 329676-005US SDIO/SD/eMMC—Intel® Quark™ SoC X1000 17.5.4 Status Register (STATUS)—Offset 6h Access Method Type: PCI Configuration Register (Size: 16 bits) STATUS: [B:0, D:20, F:0] + 6h Default: 0010h Bit Range 17.5.5 Default & Access 0 1 0 0 0 0 RSVD1 0 0 IntrStatus 0 hasCapList 0 capable_66Mhz 0 RSVD 0 FastB2B 0 4 RSVD 0 DEVSEL 0 8 RSVD 0 RcdMasAb 0 SigSysErr 12 RSVD0 15 Description 15 0h RO RSVD0 (RSVD0): Reserved 14 0b RW Signaled System Error (SigSysErr): Set when a function detects a system error and the SERR Enable bit is set 13 0b RW Received master abort (RcdMasAb): Set when requester receives a completion with Unsupported Request completion status 12: 11 0h RO Reserved (RSVD): Reserved. 10: 9 0b RO DEVSEL Timing (DEVSEL): Deprecated: Hardwired to 0 8 0h RO Reserved (RSVD): Reserved. 7 0b RO Fast Back-to-Back Capable (FastB2B): Deprecated: Hardwired to 0 6 0h RO Reserved (RSVD): Reserved. 5 0b RO 66MHz-Capable (capable_66Mhz): Deprecated: Hardwired to 0 4 1h RO Capabilities List (hasCapList): Indicates the presence of one or more capability register sets. 3 0b RO Interrupt Status (IntrStatus): Indicates that the function has a legacy interrupt request outstanding. This bit has no meaning if Message Signaled Interrupts are being used 2: 0 0h RO RSVD1 (RSVD1): Reserved Revision ID and Class Code (REV_ID_CLASS_CODE)—Offset 8h Access Method Type: PCI Configuration Register (Size: 32 bits) REV_ID_CLASS_CODE: [B:0, D:20, F:0] + 8h Default: 08050110h August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 599 Intel® Quark™ SoC X1000—SDIO/SD/eMMC 0 0 1 0 0 0 20 0 0 0 17.5.6 0 1 0 1 12 0 0 0 subClassCode 0 16 0 8 0 0 0 1 4 0 0 0 1 0 0 0 0 0 rev_id 0 24 classCode 0 28 progIntf 31 Bit Range Default & Access 31: 24 08h RO Class Code (classCode): Broadly classifies the type of function that the device performs. 23: 16 05h RO Sub-Class Code (subClassCode): Identifies more specifically (than the class_code byte) the function of the device. 15: 8 01h RO Programming Interface (progIntf): Used to define the register set variation within a particular sub-class. 7: 0 10h RO Revision ID (rev_id): Assigned by the function manufacturer and identifies the revision number of the function. Description Cache Line Size (CACHE_LINE_SIZE)—Offset Ch Access Method Type: PCI Configuration Register (Size: 8 bits) CACHE_LINE_SIZE: [B:0, D:20, F:0] + Ch Default: 00h 7 4 0 0 0 0 0 0 0 value 0 0 17.5.7 Bit Range Default & Access Description 7: 0 0h RW Cache Line Size (value): Implemented as a R/W register for legacy purposes but has no effect on device functionality. Latency Timer (LATENCY_TIMER)—Offset Dh Access Method Type: PCI Configuration Register (Size: 8 bits) LATENCY_TIMER: [B:0, D:20, F:0] + Dh Default: 00h 7 0 0 0 0 0 0 0 0 value 0 4 Intel® Quark™ SoC X1000 Datasheet 600 August 2015 Document Number: 329676-005US SDIO/SD/eMMC—Intel® Quark™ SoC X1000 17.5.8 Bit Range Default & Access 7: 0 0h RO Description Latency Timer (value): Deprecated. Hardwire to 0. Header Type (HEADER_TYPE)—Offset Eh Access Method Type: PCI Configuration Register (Size: 8 bits) HEADER_TYPE: [B:0, D:20, F:0] + Eh Default: 80h 7 4 0 0 0 multiFnDev Bit Range 17.5.9 0 0 0 0 0 cfgHdrFormat 1 Default & Access Description 7 1h RO Multi-Function Device (multiFnDev): Hard-wired to 1 to indicate that this is a multifunction device 6: 0 0h RO Configuration Header Format (cfgHdrFormat): Hard-wired to 0 to indicate that this configuration header is a Type 0 header, i.e. it is an endpoint rather than a bridge. BIST (BIST)—Offset Fh Access Method Type: PCI Configuration Register (Size: 8 bits) BIST: [B:0, D:20, F:0] + Fh Default: 00h 7 4 0 0 Default & Access 0 0 Description 7 0h RO BIST_capable (BIST_capable): Hard-wired to 0. (Returns 1 if the function implements a BIST) 6 0h RO Start (start_bist): Set to start the functions BIST if BIST is supported. 5: 4 0h RO Reserved (RSVD): Reserved. August 2015 Document Number: 329676-005US 0 comp_code BIST_capable Bit Range 0 RSVD 0 start_bist 0 0 Intel® Quark™ SoC X1000 Datasheet 601 Intel® Quark™ SoC X1000—SDIO/SD/eMMC 17.5.10 Bit Range Default & Access 3: 0 0h RO Description Completion Code (comp_code): Completion code having run BIST if BIST is supported. 0=)success. non-zero=)failure Base Address Register (BAR0)—Offset 10h Access Method Type: PCI Configuration Register (Size: 32 bits) BAR0: [B:0, D:20, F:0] + 10h Default: 00000000h 24 0 0 0 0 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 17.5.11 0 4 0 0 0 0 0 0 0 0 0 isIO 0 memType 0 prefetchable 28 0 address 0 RSVD 31 Bit Range Default & Access Description 31: 12 0h RW address (address): Used to determine the size of memory required by the device and to assign a start address for this required amount of memory. 11: 4 00h RO Reserved (RSVD): Reserved. 3 0b RO Prefetchable (prefetchable): Defines the block of memory as prefetchable or not. A block of memory is prefetchable if it fulfils the following 3 conditions (1) no side effects on reads, (2) the device returns all bytes on reads regardless of the byte enables, and (3) host bridges can merge processor writes into this range without causing errors. Hardwired to 0 2: 1 00b RO Type (memType): Hardwired to 0 to indicate a 32-bit decoder 0 0b RO Memory Space Indicator (isIO): Hardwired to 0 to indicate the register is a memory address decoder Cardbus CIS Pointer (CARDBUS_CIS_POINTER)—Offset 28h Access Method Type: PCI Configuration Register (Size: 32 bits) CARDBUS_CIS_POINTER: [B:0, D:20, F:0] + 28h Default: 00000000h 31 28 0 0 0 24 0 0 0 0 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 0 4 0 0 0 0 0 0 0 0 0 value 0 Intel® Quark™ SoC X1000 Datasheet 602 August 2015 Document Number: 329676-005US SDIO/SD/eMMC—Intel® Quark™ SoC X1000 Bit Range Default & Access 0h RO 31: 0 17.5.12 Description Cardbus CIS Pointer (value): Reserved. Hardwire to 0. Subsystem Vendor ID (SUB_SYS_VENDOR_ID)—Offset 2Ch Access Method Type: PCI Configuration Register (Size: 16 bits) SUB_SYS_VENDOR_ID: [B:0, D:20, F:0] + 2Ch Default: 0000h 15 12 0 0 0 8 0 0 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 value 0 Bit Range Default & Access 0h RO 15: 0 17.5.13 Description Subsystem Vendor ID (value): PCI Subsystem Vendor ID Subsystem ID (SUB_SYS_ID)—Offset 2Eh Access Method Type: PCI Configuration Register (Size: 16 bits) SUB_SYS_ID: [B:0, D:20, F:0] + 2Eh Default: 0000h 15 12 0 0 0 8 0 0 0 4 0 0 0 0 0 0 value 0 Bit Range 15: 0 17.5.14 Default & Access 0h RO Description Subsystem ID (value): PCI Subsystem ID Expansion ROM Base Address (EXP_ROM_BASE_ADR)—Offset 30h Access Method Type: PCI Configuration Register (Size: 32 bits) EXP_ROM_BASE_ADR: [B:0, D:20, F:0] + 30h Default: 00000000h August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 603 Intel® Quark™ SoC X1000—SDIO/SD/eMMC 0 0 0 0 0 0 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 0 4 0 17.5.15 0 0 0 0 0 0 0 0 AddrDecodeEn 0 24 ROM_base_addr 0 28 RSVD 31 Bit Range Default & Access Description 31: 11 0h RW ROM Start Address (ROM_base_addr): Used to determine the size of memory required by the ROM and to assign a start address for this required amount of memory. 10: 1 000h RO 0 0h RW Reserved (RSVD): Reserved. Address Decode Enable (AddrDecodeEn): A 1 in this field enables the function's ROM address decoder assuming that the Memory Space bit in the Command Register is also set to 1 Capabilities Pointer (CAP_POINTER)—Offset 34h Access Method Type: PCI Configuration Register (Size: 32 bits) CAP_POINTER: [B:0, D:20, F:0] + 34h Default: 00000080h 28 0 0 0 24 0 0 0 0 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 0 4 1 0 0 RSVD0 0 Bit Range 17.5.16 0 0 0 0 0 0 value 31 Default & Access Description 31: 8 0h RO RSVD0 (RSVD0): Reserved 7: 0 80h RO Capabilities Pointer (value): Pointer to memory location of first entry of linked list of configuration register sets each of which supports a feature. Points to PM (power management) register set at location 0x80 Interrupt Line Register (INTR_LINE)—Offset 3Ch Access Method Type: PCI Configuration Register (Size: 8 bits) INTR_LINE: [B:0, D:20, F:0] + 3Ch Default: 00h 7 0 0 0 0 0 0 0 0 value 0 4 Intel® Quark™ SoC X1000 Datasheet 604 August 2015 Document Number: 329676-005US SDIO/SD/eMMC—Intel® Quark™ SoC X1000 17.5.17 Bit Range Default & Access Description 7: 0 0h RW Interrupt Line Register (value): The value in this register tells which input of the system interrupt controller(s) the device's interrupt pin is connected to. The device itself does not use this value, rather it is used by device drivers and operating systems. Device drivers and operating systems can use this information to determine priority and vector information. Interrupt Pin Register (INTR_PIN)—Offset 3Dh Access Method Type: PCI Configuration Register (Size: 8 bits) INTR_PIN: [B:0, D:20, F:0] + 3Dh Default: 00h 7 4 0 0 0 0 0 0 0 value 0 0 17.5.18 Bit Range Default & Access Description 7: 0 01h RO Interrupt Pin Register (value): The Interrupt Pin register tells which interrupt pin the device (or device function) uses. A value of 1 corresponds to INTA#. A value of 2 corresponds to INTB#. A value of 3 corresponds to INTC#. A value of 4 corresponds to INTD#. Devices (or device functions) that do not use an interrupt pin must put a 0 in this register. The values 05h through FFh are reserved. For this system function 0 is connected to INTA, 1 to INTB, 2 to INTC 3 to INTD, 4 to INTA, 5 to INTB etc. MIN_GNT (MIN_GNT)—Offset 3Eh Access Method Type: PCI Configuration Register (Size: 8 bits) MIN_GNT: [B:0, D:20, F:0] + 3Eh Default: 00h 7 4 0 0 0 0 0 0 0 0 value 0 17.5.19 Bit Range Default & Access 7: 0 0h RO Description MIN_GNT (value): Hardwired to 0 MAX_LAT (MAX_LAT)—Offset 3Fh Access Method Type: PCI Configuration Register (Size: 8 bits) MAX_LAT: [B:0, D:20, F:0] + 3Fh Default: 00h August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 605 Intel® Quark™ SoC X1000—SDIO/SD/eMMC 7 4 0 0 0 0 0 0 0 0 1 value 0 0 17.5.20 Bit Range Default & Access 7: 0 0h RO Description MAX_LAT (value): Hardwired to 0 Capability ID (PM_CAP_ID)—Offset 80h Access Method Type: PCI Configuration Register (Size: 8 bits) PM_CAP_ID: [B:0, D:20, F:0] + 80h Default: 01h 7 4 0 0 0 0 0 0 value 0 17.5.21 Bit Range Default & Access 7: 0 01h RO Description Capability ID (value): Identifies the feature associated with this register set. Hardwired value as per PCI SIG assigned capability ID Next Capability Pointer (PM_NXT_CAP_PTR)—Offset 81h Access Method Type: PCI Configuration Register (Size: 8 bits) PM_NXT_CAP_PTR: [B:0, D:20, F:0] + 81h Default: A0h 7 4 0 1 0 0 0 0 0 0 value 1 17.5.22 Bit Range Default & Access 7: 0 a0h RO Description Next Capability Pointer (value): Pointer to the next register set of feature specific configuration registers. Hardwired to 0xA0 to point to the MSI Capability Structure Power Management Capabilities (PMC)—Offset 82h Access Method Type: PCI Configuration Register (Size: 16 bits) Intel® Quark™ SoC X1000 Datasheet 606 PMC: [B:0, D:20, F:0] + 82h August 2015 Document Number: 329676-005US SDIO/SD/eMMC—Intel® Quark™ SoC X1000 Default: 4803h 17.5.23 0 4 0 0 0 0 0 0 0 1 1 version 0 PME_clock 0 RSVD 8 1 DSI 0 aux_curr 0 D1_support 12 1 PME_support 0 D2_support 15 Bit Range Default & Access Description 15: 11 09h RO PME Support (PME_support): PME_Support field Indicates the PM states within which the function is capable of sending a PME (Power Management Event) message. 0 in a bit =) PME is not supported in the corresponding PM state, where bit indexes 11,12,13,14,15 correspond to PM states D0, D1, D2, D3hot, D3cold respectively. 10 0h RO D2 Support (D2_support): Hardwired to 0 as the D2 state is not supported 9 0h RO D1 Support (D1_support): Hardwired to 0 as the D1 state is not supported 8: 6 0h RO Aux Current (aux_curr): Hardwired to 0 as the D3hot state is not supported 5 0h RO Device Specific Initialisation (DSI): Hardwired to 0 to indicate that the device does not require a device specific initialisation sequence following transition to the D0 uninitialised state 4 0h RO Reserved (RSVD): Reserved. 3 0h RO PME Clock (PME_clock): Deprecated. Hardwired to 0 2: 0 011b RO Version (version): This function complies with revision 1.2 of the PCI Power Management Interface Specification Power Management Control/Status Register (PMCSR)—Offset 84h Access Method Type: PCI Configuration Register (Size: 16 bits) PMCSR: [B:0, D:20, F:0] + 84h Default: 0008h 0 0 0 0 0 0 0 0 0 0 1 0 RSVD 0 4 0 0 0h RW PME Status (PME_status): Set if function has experienced a PME (even if PME_en (bit 8 of PMCSR register) is not set). 0h RO Data Scale (Data_scale): Hardwired to 0 as the data register is not supported 15 14: 13 August 2015 Document Number: 329676-005US power_state Description RSVD Default & Access PME_en Bit Range Data_select Data_scale 0 8 PME_status 0 12 no_soft_reset 15 Intel® Quark™ SoC X1000 Datasheet 607 Intel® Quark™ SoC X1000—SDIO/SD/eMMC Bit Range 17.5.24 Default & Access Description 12: 9 0h RO Data Select (Data_select): Hardwired to 0 as the data register is not supported 8 0b RW PME Enable (PME_en): Enable device function to send PME messages when an event occurs. 1=)enabled. 0=)disabled 7: 4 0h RO Reserved (RSVD): Reserved. 3 1b RO No Soft Reset (no_soft_reset): Devices do perform an internal reset when transitioning from D3hot to D0 2 0h RO Reserved (RSVD): Reserved. 1: 0 00b RW Power State (power_state): Allows software to read current PM state or transition device to a new PM state, where 2'b00 = D0, 2'b01=D1, 2'b10=D2, 2'b11=D3hot PM CSR PCI-to-PCI Bridge Support Extension (PMCSR_BSE)— Offset 86h Access Method Type: PCI Configuration Register (Size: 8 bits) PMCSR_BSE: [B:0, D:20, F:0] + 86h Default: 00h 7 4 0 0 0 0 0 0 0 0 value 0 17.5.25 Bit Range Default & Access 7: 0 0h RO Description PM CSR PCI-to-PCI Bridge Support Extension (value): Not Supported. Hardwired to 0. Power Management Data Register (DATA_REGISTER)—Offset 87h Access Method Type: PCI Configuration Register (Size: 8 bits) DATA_REGISTER: [B:0, D:20, F:0] + 87h Default: 00h 7 4 0 0 0 0 0 0 0 0 value 0 Bit Range Default & Access 7: 0 0h RO Intel® Quark™ SoC X1000 Datasheet 608 Description Power Management Data Register (value): Not Supported. Hardwired to 0 August 2015 Document Number: 329676-005US SDIO/SD/eMMC—Intel® Quark™ SoC X1000 17.5.26 Capability ID (MSI_CAP_ID)—Offset A0h Access Method Type: PCI Configuration Register (Size: 8 bits) MSI_CAP_ID: [B:0, D:20, F:0] + A0h Default: 05h 7 4 0 0 0 0 1 0 1 value 0 0 17.5.27 Bit Range Default & Access 7: 0 05h RO Description Capability ID (value): Identifies the feature associated with this register set. Hardwired value as per PCI SIG assigned capability ID Next Capability Pointer (MSI_NXT_CAP_PTR)—Offset A1h Access Method Type: PCI Configuration Register (Size: 8 bits) MSI_NXT_CAP_PTR: [B:0, D:20, F:0] + A1h Default: 00h 7 4 0 0 0 0 0 0 0 value 0 0 17.5.28 Bit Range Default & Access Description 7: 0 00h RO Next Capability Pointer (value): Hardwired to 0 as this is the last capability structure in the chain Message Control (MESSAGE_CTRL)—Offset A2h Access Method Type: PCI Configuration Register (Size: 16 bits) MESSAGE_CTRL: [B:0, D:20, F:0] + A2h Default: 0100h August 2015 Document Number: 329676-005US 0 0 1 0 0 0 0 0 0 0 0 MSIEnable 0 0 multiMsgCap 0 4 multiMsgEn 0 8 bit64Cap 0 RSVD0 0 12 perVecMskCap 15 Intel® Quark™ SoC X1000 Datasheet 609 Intel® Quark™ SoC X1000—SDIO/SD/eMMC Bit Range 17.5.29 Default & Access Description 15: 9 0h RO RSVD0 (RSVD0): Reserved 8 1h RO Per Vector Masking Capable (perVecMskCap): Hardwired to 1 to indicate the function supports PVM 7 0h RO 64 bit Address Capabale (bit64Cap): This bit is hardwired to 0 to indicate that the function is not capable of sending a 64-bit message address. 6: 4 0h RW Multi-Message Enable (multiMsgEn): As only one vector is supported per function, software should only write a value of 0x0 to this field 3: 1 0h RO Multiple Message Enable (multiMsgCap): This field is hardwired to 0x0 to indicate that the function is requesting a single vector 0 0h RW MSI Enable (MSIEnable): Set to enable MSI to request service. If set then it's prohibited to use the INTx pin. System configuration software sets this bit to enable MSI. Message Address (MESSAGE_ADDR)—Offset A4h Access Method Type: PCI Configuration Register (Size: 32 bits) MESSAGE_ADDR: [B:0, D:20, F:0] + A4h Default: 00000000h 31 28 0 0 0 0 0 0 0 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 0 4 0 0 0 0 0 0 0 Bit Range 17.5.30 0 0 RSVD0 address 0 24 Default & Access Description 31: 2 0h RW Message Address (address): If the Message Enable bit (bit 0 of the Message Control register) is set, the contents of this register specify the DWORD-aligned address (AD[31:2]) for the MSI memory write transaction. AD[1:0] are driven to zero during the address phase. This field is read/write 1: 0 0h RO RSVD0 (RSVD0): Reserved Message Data (MESSAGE_DATA)—Offset A8h Access Method Type: PCI Configuration Register (Size: 16 bits) MESSAGE_DATA: [B:0, D:20, F:0] + A8h Default: 0000h 15 0 0 0 8 0 0 0 4 0 0 0 0 0 0 0 0 0 0 MsgData 0 12 Intel® Quark™ SoC X1000 Datasheet 610 August 2015 Document Number: 329676-005US SDIO/SD/eMMC—Intel® Quark™ SoC X1000 Bit Range Default & Access Description 0h RW Data Field (MsgData): System-specified message data. If the Message Enable bit (bit 0 of the Message Control register) is set, the message data is driven onto the lower word (AD[15:0]) of the memory write transactions data phase. AD[31:16] are driven to zero during the memory write transactions data phase. C/BE[3::0]# are asserted during the data phase of the memory write transaction. None of the message bits will be changed by hardware 15: 0 17.5.31 Mask Bits for MSI (PER_VEC_MASK)—Offset ACh Access Method Type: PCI Configuration Register (Size: 32 bits) PER_VEC_MASK: [B:0, D:20, F:0] + ACh Default: 00000000h 31 0 0 0 24 0 0 0 0 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 0 4 0 0 0 0 0 0 0 0 Bit Range 17.5.32 0 MSIMask RSVD0 0 28 Default & Access Description 31: 1 0h RO RSVD0 (RSVD0): Reserved 0 0h RW Vector 0 Mask (MSIMask): Mask Bit for Vector 0. If this bit is set, the function will not send MSI messages Pending Bits for MSI (PER_VEC_PEND)—Offset B0h Access Method Type: PCI Configuration Register (Size: 32 bits) PER_VEC_PEND: [B:0, D:20, F:0] + B0h Default: 00000000h 0 0 0 24 0 0 0 0 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 RSVD0 0 28 Bit Range Default & Access 0 0 0 0 0 0 0 0 0 0 Description 31: 1 0h RO RSVD0 (RSVD0): Reserved 0 0h RO Vector 0 Pending (value): Pending Bit for Vector 0. August 2015 Document Number: 329676-005US 0 4 value 31 Intel® Quark™ SoC X1000 Datasheet 611 Intel® Quark™ SoC X1000—SDIO/SD/eMMC 17.6 Memory Mapped Registers Table 112. Summary of Memory Mapped I/O Registers—BAR0 Offset Start Offset End Default Value Register ID—Description 0h 3h “SDMA System Address Register (SYS_ADR)—Offset 0h” on page 613 00000000h 4h 5h “Block Size Register (BLK_SIZE)—Offset 4h” on page 614 0000h 6h 7h “Block Count Register (BLK_COUNT)—Offset 6h” on page 615 0000h 8h Bh “Argument Register (ARGUMENT)—Offset 8h” on page 616 00000000h Ch Dh “Transfer Mode Register (TX_MODE)—Offset Ch” on page 616 0000h Eh Fh “Command Register (CMD)—Offset Eh” on page 618 0000h 10h 13h “Response Register 0 (RESPONSE0)—Offset 10h” on page 619 00000000h 14h 17h “Response Register 2 (RESPONSE2)—Offset 14h” on page 620 00000000h 18h 1Bh “Response Register 4 (RESPONSE4)—Offset 18h” on page 620 00000000h 1Ch 1Fh “Response Register 6 (RESPONSE6)—Offset 1Ch” on page 621 00000000h 20h 23h “Buffer Data Port Register (BUF_DATA_PORT)—Offset 20h” on page 621 00000000h 24h 27h “Present State Register (PRE_STATE)—Offset 24h” on page 622 1FF00000h 28h 28h “Host Control Register (HOST_CTL)—Offset 28h” on page 627 00h 29h 29h “Power Control Register (PWR_CTL)—Offset 29h” on page 628 00h 2Ah 2Ah “Block Gap Control Register (BLK_GAP_CTL)—Offset 2Ah” on page 628 00h 2Ch 2Dh “Clock Control Register (CLK_CTL)—Offset 2Ch” on page 630 0000h 2Eh 2Eh “Timeout Control Register (TIMEOUT_CTL)—Offset 2Eh” on page 632 00h 2Fh 2Fh “Software Reset Register (SW_RST)—Offset 2Fh” on page 633 00h 30h 31h “Normal Interrupt Status Register (NML_INT_STATUS)—Offset 30h” on page 634 0000h 32h 33h “Error Interrupt Status Register (ERR_INT_STATUS)—Offset 32h” on page 636 0000h 34h 35h “Normal Interrupt Status Enable (NRM_INT_STATUS_EN)—Offset 34h” on page 638 0000h 36h 37h “Error Interrupt Status Enable Register (ERR_INT_STAT_EN)—Offset 36h” on page 639 0000h 38h 39h “Normal Interrupt Signal Enable Register (NRM_INT_SIG_EN)—Offset 38h” on page 640 0000h 3Ah 3Bh “Error Interrupt Signal Enable Register (ERR_INT_SIG_EN)—Offset 3Ah” on page 642 0000h 3Ch 3Dh “Auto CMD12 Error Status Register (CMD12_ERR_STAT)—Offset 3Ch” on page 643 0000h 3Eh 3Fh “Host Control 2 Register (HOST_CTRL_2)—Offset 3Eh” on page 644 0000h 40h 43h “Capabilities Register (CAPABILITIES)—Offset 40h” on page 645 01EC32B2h 44h 47h “Capabilities Register 2 (CAPABILITIES_2)—Offset 44h” on page 647 03000000h 48h 4Bh “Maximum Current Capabilities Register (MAX_CUR_CAP)—Offset 48h” on page 648 00000001h 50h 51h “Force Event Register for Auto CMD12 Error Status (FORCE_EVENT_CMD12_ERR_STAT)—Offset 50h” on page 649 0000h 52h 53h “Force Event Register for Error Interrupt Status (FORCE_EVENT_ERR_INT_STAT)— 0000h Offset 52h” on page 650 54h 54h “ADMA Error Status Register (ADMA_ERR_STAT)—Offset 54h” on page 651 00h 58h 5Bh “ADMA System Address Register (ADMA_SYS_ADDR)—Offset 58h” on page 652 00000000h Intel® Quark™ SoC X1000 Datasheet 612 August 2015 Document Number: 329676-005US SDIO/SD/eMMC—Intel® Quark™ SoC X1000 Table 112. Offset Start Summary of Memory Mapped I/O Registers—BAR0 (Continued) Offset End Default Value Register ID—Description 60h 61h “initialization Preset Values Register (3.3v or 1.8v) (PRESET_VALUE_0)—Offset 60h” on page 653 0040h 62h 63h “Default Speed Preset Values Register (PRESET_VALUE_1)—Offset 62h” on page 653 0001h 64h 65h “High Speed Preset Values Register (PRESET_VALUE_2)—Offset 64h” on page 654 0000h 66h 67h “SDR12 Preset Values Register (PRESET_VALUE_3)—Offset 66h” on page 654 0001h 68h 69h “SDR25 Preset Values Register (PRESET_VALUE_4)—Offset 68h” on page 655 0000h 6Ah 6Bh “SDR50 Preset Values Register (PRESET_VALUE_5)—Offset 6Ah” on page 656 0000h 6Ch 6Dh “SDR104 Preset Values Register (PRESET_VALUE_6)—Offset 6Ch” on page 656 0000h 6Eh 6Fh “DDR50 Preset Values Register (PRESET_VALUE_7)—Offset 6Eh” on page 657 0000h 70h 73h “Boot Time-out control register (BOOT_TIMEOUT_CTRL)—Offset 70h” on page 658 00000000h 74h 74h “Debug Selection Register (DEBUG_SEL)—Offset 74h” on page 658 00h E0h E3h “Shared Bus Control Register (SHARED_BUS)—Offset E0h” on page 659 00000000h F0h F0h “SPI Interrupt Support Register (SPI_INT_SUP)—Offset F0h” on page 660 00h FCh FDh “Slot Interrupt Status Register (SLOT_INT_STAT)—Offset FCh” on page 661 0000h FEh FFh “Host Controller Version Register (HOST_CTRL_VER)—Offset FEh” on page 661 A702h 17.6.1 SDMA System Address Register (SYS_ADR)—Offset 0h This register contains the physical system memory address used for DMA transfers or the second argument for the Auto CMD23 Access Method Type: Memory Mapped I/O Register (Size: 32 bits) SYS_ADR: [BAR0] + 0h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:0] + 10h Default: 00000000h 31 0 0 0 24 0 0 0 0 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 0 4 0 0 0 0 0 0 0 0 0 sys_adr 0 28 August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 613 Intel® Quark™ SoC X1000—SDIO/SD/eMMC Bit Range 31: 0 17.6.2 Default & Access Description 0h RW SDMA System Address / Auto CMD23 Argument 2 (sys_adr): This register contains the physical system memory address used for DMA transfers (1) or the second argument for the Auto CMD23 (2). (1) SDMA System Address This register contains the system memory address for a SDMA transfer. When the Host Controller stops a SDMA transfer, this register shall point to the system address of the next contiguous data position. It can be accessed only if no transaction is executing (i.e., after a transaction has stopped). Read operations during transfers may return an invalid value. The Host Driver shall initialize this register before starting a SDMA transaction. After SDMA has stopped, the next system address of the next contiguous data position can be read from this register. The SDMA transfer waits at the every boundary specified by the Host SDMA Buffer Boundary in the Block Size register. The Host Controller generates DMA Interrupt to request the Host Driver to update this register. The Host Driver sets the next system address of the next data position to this register. When the most upper byte of this register (003h) is written, the Host Controller restarts the SDMA transfer. When restarting SDMA by the Resume command or by setting Continue Request in the Block Gap Control register, the Host Controller shall start at the next contiguous address stored here in the SDMA System Address register. ADMA does not use this register (2) Argument 2 This register is used with the Auto CMD23 to set a 32-bit block count value to the argument of the CMD23 while executing Auto CMD23. If Auto CMD23 is used with ADMA, the full 32-bit block count value can be used. If Auto CMD23 is used without AMDA, the available block count value is limited by the Block Count register. 65535 blocks is the maximum value in this case. Block Size Register (BLK_SIZE)—Offset 4h This register is used to configure the number of bytes in a data block. Access Method Type: Memory Mapped I/O Register (Size: 16 bits) BLK_SIZE: [BAR0] + 4h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:0] + 10h Default: 0000h Bit Range 15 Intel® Quark™ SoC X1000 Datasheet 614 0 0 boundary tx_blk_size_12 0 12 Default & Access 0h RW 0 8 0 0 0 0 4 0 0 0 0 0 0 0 0 0 tr_blk_size 15 Description Transfer Block Size [12] (tx_blk_size_12): Transfer Block Size 12th bit. This bit is added to support 4Kb Data block transfer. August 2015 Document Number: 329676-005US SDIO/SD/eMMC—Intel® Quark™ SoC X1000 Bit Range 14: 12 11: 0 17.6.3 Default & Access Description 000b RW Host SDMA Buffer Boundary (boundary): The large contiguous memory space may not be available in the virtual memory system. To perform long SDMA transfer, SDMA System Address register shall be updated at every system memory boundary during SDMA transfer. These bits specify the size of contiguous buffer in the system memory. The SDMA transfer shall wait at the every boundary specified by these fields and the Host Controller generates the DMA Interrupt to request the Host Driver to update the SDMA System Address register. At the end of transfer, the Host Controller may issue or may not issue DMA Interrupt. In particular, DMA Interrupt shall not be issued after Transfer Complete Interrupt is issued. In case of this register is set to 0 (buffer size = 4K bytes), lower 12-bit of byte address points data in the contiguous buffer and the upper 20-bit points the location of the buffer in the system memory. The SDMA transfer stops when the Host Controller detects carry out of the address from bit 11 to 12. These bits shall be supported when the SDMA Support in the Capabilities register is set to 1 and this function is active when the DMA Enable in the Transfer Mode register is set to 1. ADMA does not use this register. 000b 4K bytes (Detects A11 carry out) 001b 8K bytes (Detects A12 carry out) 010b 16K Bytes (Detects A13 carry out) 011b 32K Bytes (Detects A14 carry out) 100b 64K bytes (Detects A15 carry out) 101b 128K Bytes (Detects A16 carry out) 110b 256K Bytes (Detects A17 carry out) 111b 512K Bytes (Detects A18 carry out) 000h RW Transfer Block Size (tr_blk_size): This register specifies the block size of data transfers for CMD17, CMD18, CMD24, CMD25, and CMD53. Values ranging from 1 up to the maximum buffer size can be set. In case of memory, it shall be set up to 512 bytes (Refer to SD Host Controller Simplified Specification Version 3.00 - Implementation Note in Section 1.7.2). It can be accessed only if no transaction is executing (i.e., after a transaction has stopped). Read operations during transfers may return an invalid value, and write operations shall be ignored. 0800h 2048 Bytes ... ... 0200h 512 Bytes 01FFh 511 Bytes ... ... 0004h 4 Bytes 0003h 3 Bytes 0002h 2 Bytes 0001h 1 Byte 0000h No data transfer Block Count Register (BLK_COUNT)—Offset 6h This register is enabled when Block Count Enable in the Transfer Mode register is set to 1 and is valid only for multiple block transfers. Access Method Type: Memory Mapped I/O Register (Size: 16 bits) BLK_COUNT: [BAR0] + 6h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:0] + 10h Default: 0000h 15 0 0 0 8 0 0 0 4 0 0 0 0 0 0 0 0 0 0 blk_count 0 12 August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 615 Intel® Quark™ SoC X1000—SDIO/SD/eMMC Bit Range Default & Access Description 0000h RW Blocks Count For Current Transfer (blk_count): The Host Driver shall set this register to a value between 1 and the maximum block count. The Host Controller decrements the block count after each block transfer and stops when the count reaches zero. Setting the block count to 0 results in no data blocks is transferred. This register should be accessed only when no transaction is executing (i.e., after transactions are stopped). During data transfer, read operations on this register may return an invalid value and write operations are ignored. When a suspend command is completed, the number of blocks yet to be transferred can be determined by reading this register. Before issuing a resume command, the Host Driver shall restore the previously saved block count. FFFFh 65535 blocks ... ... 0002h 2 blocks 0001h 1 block 0000h Stop Count 15: 0 17.6.4 Argument Register (ARGUMENT)—Offset 8h This register contains the SD Command Argument. Access Method Type: Memory Mapped I/O Register (Size: 32 bits) ARGUMENT: [BAR0] + 8h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:0] + 10h Default: 00000000h 31 0 0 0 24 0 0 0 0 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 0 4 0 0 0 0 0 0 0 0 0 argument 0 28 Bit Range 31: 0 17.6.5 Default & Access 0h RW Description Command Argument 1 (argument): The SD Command Argument is specified as bit39-8 of Command-Format in the SD Physical Layer Specification. Transfer Mode Register (TX_MODE)—Offset Ch This register is used to control the operation of data transfers. The Host Driver shall set this register before issuing a command which transfers data (Refer to Data Present Select in the Command register), or before issuing a Resume command. The Host Driver shall save the value of this register when the data transfer is suspended (as a result of a Suspend command) and restore it before issuing a Resume command. To prevent data loss, the Host Controller shall implement write protection for this register during data transactions. Writes to this register shall be ignored when the Command Inhibit (DAT) in the Present State register is 1. Access Method Type: Memory Mapped I/O Register (Size: 16 bits) TX_MODE: [BAR0] + Ch BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:0] + 10h Intel® Quark™ SoC X1000 Datasheet 616 August 2015 Document Number: 329676-005US SDIO/SD/eMMC—Intel® Quark™ SoC X1000 Default: 0000h 0 Bit Range Default & Access 15: 7 000h RO 6 0b RW 0 4 0 0 0 0 0 0 0 0 0 dma_en 0 blk_count_en 8 0 cmd12_en 0 data_tr_dir 0 blk_sel 12 0 rsvd 0 cmd_comp_ata 15 Description RSVD (rsvd): Reserved Command Completion Signal Enable for CE-ATA Device (cmd_comp_ata): 1 Device will send command completion Signal 0 - Device will not send command completion Signal NOTE: This filed is not part of the SD Host Controller Specification v3.00. 5 0h RW Multi / Single Block Select (blk_sel): This bit is set when issuing multiple-block transfer commands using DAT line. For any other commands, this bit shall be set to 0. If this bit is 0, it is not necessary to set the Block Count register. (Refer to Table 2-8 on SD Host Controller Simplified Specification Version 3.00) 1 Multiple Block 0 Single Block 4 0h RW Data Transfer Direction Select (data_tr_dir): This bit defines the direction of DAT line data transfers. The bit is set to 1 by the Host Driver to transfer data from the SD card to the SD Host Controller and it is set to 0 for all other commands. 1 Read (Card to Host) 0 Write (Host to Card) 00b RW Auto CMD Enable (cmd12_en): This field determines use of auto command functions. 00b Auto Command Disabled 01b Auto CMD12 Enable 10b Auto CMD23 Enable 11b Reserved There are two methods to stop Multiple-block read and write operation. (1) Auto CMD12 Enable The Host Controller issues CMD12 automatically when last block transfer is completed. Auto CMD12 error is indicated to the Auto CMD Error Status register. The Host Driver shall not set this bit if the command does not require CMD12. In particular, secure commands defined in the Part 3 File Security specification do not require CMD12. (2) Auto CMD23 Enable The Host Controller issues a CMD23 automatically before issuing a command specified in the Command Register. The following conditions are required to use the Auto CMD23: - Auto CMD23 Supported - A memory card that supports CMD23 (SCR[33]=1) - If DMA is used, it shall be ADMA. - Only when CMD18 or CMD25 is issued (Note, the Host Controller does not check command index.) Auto CMD23 can be used with or without ADMA. By writing the Command register, the Host Controller issues a CMD23 first and then issues a command specified by the Command Index in Command register. If response errors of CMD23 are detected, the second command is not issued. A CMD23 error is indicated in the Auto CMD Error Status register. 32-bit block count value for CMD23 is set to SDMA System Address / Argument 2 register 0b RW Block Count Enable (blk_count_en): This bit is used to enable the Block Count register, which is only relevant for multiple block transfers. When this bit is 0, the Block Count register is disabled, which is useful in executing an infinite transfer. (Refer to Table 2-8 on SD Host Controller Simplified Specification Version 3.00) If ADMA2 data transfer is more than 65535 blocks, this bit shall be set to 0. In this case, data transfer length is designated by Descriptor Table. 1 Enable 0 Disable 3: 2 1 August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 617 Intel® Quark™ SoC X1000—SDIO/SD/eMMC Bit Range 0 17.6.6 Default & Access Description 0b RW DMA Enable (dma_en): DMA can be enabled only if it is supported as indicated in the Capabilities register. One of the DMA modes can be selected by DMA Select in the Host Control 1 register. If DMA is not supported, this bit is meaningless and shall always read 0. If this bit is set to 1, a DMA operation shall begin when the Host Driver writes to the upper byte of Command register (00Fh). 1 DMA Data transfer 0 No data transfer or Non DMA data transfer Command Register (CMD)—Offset Eh The Host Driver shall check the Command Inhibit (DAT) bit and Command Inhibit (CMD) bit in the Present State register before writing to this register. Writing to the upper byte of this register triggers SD command generation. The Host Driver has the responsibility to write this register because the Host Controller does not protect for writing when Command Inhibit (CMD) is set. Access Method Type: Memory Mapped I/O Register (Size: 16 bits) CMD: [BAR0] + Eh BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:0] + 10h Default: 0000h 0 0 0 0 0 0 0 0 0 0 resp_type_sel 0 reserved 0 0 cmd_crc_chk_en 0 4 cmd_index_chk_en 0 cmd_index 0 rsvd 0 8 data_pr_sel 12 cmd_type 15 Bit Range Default & Access 15: 14 0h RO RSVD (rsvd): Reserved 13: 8 0h RW Command Index (cmd_index): These bits shall be set to the command number (CMD0-63, ACMD0-63) that is specified in bits 45-40 of the Command-Format in the Physical Layer Specification and SDIO Card Specification Intel® Quark™ SoC X1000 Datasheet 618 Description August 2015 Document Number: 329676-005US SDIO/SD/eMMC—Intel® Quark™ SoC X1000 Bit Range 7: 6 5 Default & Access Description 00b RW Command Type (cmd_type): There are three types of special commands: Suspend, Resume and Abort. These bits shall be set to 00b for all other commands. (1) Suspend Command If the Suspend command succeeds, the Host Controller shall assume the SD Bus has been released and that it is possible to issue the next command, which uses the DAT line. The Host Controller shall de-assert Read Wait for read transactions and stop checking busy for write transactions. The interrupt cycle shall start, in 4-bit mode. If the Suspend command fails, the Host Controller shall maintain its current state, and the Host Driver shall restart the transfer by setting Continue Request in the Block Gap Control register. (2) Resume Command The Host Driver re-starts the data transfer by restoring the registers in the range of 000-00Dh. The Host Controller shall check for busy before starting write transfers. (3) Abort Command If this command is set when executing a read transfer, the Host Controller shall stop reads to the buffer. If this command is set when executing a write transfer, the Host Controller shall stop driving the DAT line. After issuing the Abort command, the Host Driver should issue a software reset. 11b Abort CMD12, CMD52 for writing I/O Abort in CCCR 10b Resume CMD52 for writing Function Select in CCCR 01b Suspend CMD52 for writing Bus Suspend in CCCR 00b Normal Other commands 0b RW Data Present Select (data_pr_sel): This bit is set to 1 to indicate that data is present and shall be transferred using the DAT line. It is set to 0 for the following: (1) Commands using only CMD line (ex. CMD52). (2) Commands with no data transfer but using busy signal on DAT[0] line (R1b or R5b ex. CMD38) (3) Resume command 1 Data Present 0 No Data Present 0b RW Command Index Check Enable (cmd_index_chk_en): If this bit is set to 1, the Host Controller shall check the Index field in the response to see if it has the same value as the command index. If it is not, it is reported as a Command Index Error. If this bit is set to 0, the Index field is not checked. 1 Enable 0 Disable 3 0b RW Command CRC Check Enable (cmd_crc_chk_en): If this bit is set to 1, the Host Controller shall check the CRC field in the response. If an error is detected, it is reported as a Command CRC Error. If this bit is set to 0, the CRC field is not checked. The position of CRC field is determined according to the length of the response. (Refer to definition in D01-00 and Table 2-10 in the SD Host Controller Simplified Specification Version 3.00). 1 Enable 0 Disable 2 0h RO Reserved (reserved): Reserved 1: 0 0h RW Response Type Select (resp_type_sel): 00 No Response 01 Response Length 136 10 Response Length 48 11 Response Length 48 check Busy after response 4 17.6.7 Response Register 0 (RESPONSE0)—Offset 10h This register is used to store responses from SD cards Access Method Type: Memory Mapped I/O Register (Size: 32 bits) RESPONSE0: [BAR0] + 10h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:0] + 10h Default: 00000000h August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 619 Intel® Quark™ SoC X1000—SDIO/SD/eMMC 31 0 0 0 24 0 0 0 0 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 0 4 0 0 0 0 0 0 0 0 0 cmd_resp 0 28 Bit Range Default & Access Description 0h RO Command Response (cmd_resp): Section 2.2.7 and Table 2-12 in the SD Host Controller Simplified Specification Version 3.00 describe the mapping of command responses from the SD Bus to this register for each response type. In the table, R[] refers to a bit range within the response data as transmitted on the SD Bus, REP[] refers to a bit range within the Response register 31: 0 17.6.8 Response Register 2 (RESPONSE2)—Offset 14h This register is used to store responses from SD cards Access Method Type: Memory Mapped I/O Register (Size: 32 bits) RESPONSE2: [BAR0] + 14h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:0] + 10h Default: 00000000h 31 28 0 0 0 24 0 0 0 0 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 0 4 0 0 0 0 0 0 0 0 0 cmd_resp 0 Bit Range 31: 0 17.6.9 Default & Access Description 0h RO Command Response (cmd_resp): Section 2.2.7 and Table 2-12 in the SD Host Controller Simplified Specification Version 3.00 describe the mapping of command responses from the SD Bus to this register for each response type. In the table, R[] refers to a bit range within the response data as transmitted on the SD Bus, REP[] refers to a bit range within the Response register Response Register 4 (RESPONSE4)—Offset 18h This register is used to store responses from SD cards Access Method Type: Memory Mapped I/O Register (Size: 32 bits) RESPONSE4: [BAR0] + 18h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:0] + 10h Default: 00000000h Intel® Quark™ SoC X1000 Datasheet 620 August 2015 Document Number: 329676-005US SDIO/SD/eMMC—Intel® Quark™ SoC X1000 31 0 0 0 24 0 0 0 0 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 0 4 0 0 0 0 0 0 0 0 0 cmd_resp 0 28 Bit Range Default & Access Description 0h RO Command Response (cmd_resp): Section 2.2.7 and Table 2-12 in the SD Host Controller Simplified Specification Version 3.00 describe the mapping of command responses from the SD Bus to this register for each response type. In the table, R[] refers to a bit range within the response data as transmitted on the SD Bus, REP[] refers to a bit range within the Response register 31: 0 17.6.10 Response Register 6 (RESPONSE6)—Offset 1Ch This register is used to store responses from SD cards Access Method Type: Memory Mapped I/O Register (Size: 32 bits) RESPONSE6: [BAR0] + 1Ch BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:0] + 10h Default: 00000000h 31 28 0 0 0 24 0 0 0 0 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 0 4 0 0 0 0 0 0 0 0 0 cmd_resp 0 Bit Range 31: 0 17.6.11 Default & Access Description 0h RO Command Response (cmd_resp): Section 2.2.7 and Table 2-12 in the SD Host Controller Simplified Specification Version 3.00 describe the mapping of command responses from the SD Bus to this register for each response type. In the table, R[] refers to a bit range within the response data as transmitted on the SD Bus, REP[] refers to a bit range within the Response register Buffer Data Port Register (BUF_DATA_PORT)—Offset 20h 32-bit data port register to access internal buffer Access Method Type: Memory Mapped I/O Register (Size: 32 bits) BUF_DATA_PORT: [BAR0] + 20h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:0] + 10h Default: 00000000h August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 621 Intel® Quark™ SoC X1000—SDIO/SD/eMMC 31 0 0 0 24 0 0 0 0 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 0 4 0 0 0 0 0 0 0 0 0 buf_data 0 28 Bit Range Default & Access Description 0h RW Buffer Data (buf_data): The Host Controller buffer can be accessed through this 32bit Data Port register. Refer to section 1.7 in the SD Host Controller Simplified Specification Version 3.00 31: 0 17.6.12 Present State Register (PRE_STATE)—Offset 24h This bit indicates whether one of the DAT line on SD bus is in use. The Host Driver can get status of the Host Controller from this 32-bit read only register Access Method Type: Memory Mapped I/O Register (Size: 32 bits) PRE_STATE: [BAR0] + 24h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:0] + 10h Default: 1FF00000h 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 cmd_inhibit_cmd 0 cmd_inhibit_dat 0 re_tune_req 0 0 dat_ln_active 0 4 reserved 0 rd_tx_active 1 wr_tx_active 1 buf_rd_en 1 8 buf_wr_en 1 12 reserved1 1 crd_ins 1 crd_st_stable 1 crd_det_pin_lvl 1 16 wr_prot_sw_pin_lvl 1 20 data_ln_sig_lvl 0 24 cmd_ln_sig_lvl 0 reserved2 0 28 dat_sig_lvl 31 Bit Range Default & Access 31: 29 0h RO Reserved2 (reserved2): Reserved Fh RO DAT[7:4] Line Signal Level (dat_sig_lvl): This status is used to check DAT line level to recover from errors, and for debugging. D28 - DAT[7] D27 - DAT[6] D26 - DAT[5] D25 - DAT[4] NOTE: This filed is not part of the SD Host Controller Specification v3.00. 1b RO CMD Line Signal Level (cmd_ln_sig_lvl): This status is used to check the CMD line level to recover from errors, and for debugging. Fh RO DAT[3:0] Line Signal Level (data_ln_sig_lvl): This status is used to check the DAT line level to recover from errors, and for debugging. This is especially useful in detecting the busy signal level from DAT[0]. D23 - DAT[3] D22 - DAT[2] D21 - DAT[1] D20 - DAT[0] 28: 25 24 23: 20 Intel® Quark™ SoC X1000 Datasheet 622 Description August 2015 Document Number: 329676-005US SDIO/SD/eMMC—Intel® Quark™ SoC X1000 Bit Range Default & Access Description 0b RO Write Protect Switch Pin Level (wr_prot_sw_pin_lvl): The Write Protect Switch is supported for memory and combo cards. This bit reflects the inverse value of the SD_WP pin. 1 Write enabled (SD_WP=0) 0 Write protected (SD_WP=1) 18 0b RO Card Detect Pin Level (crd_det_pin_lvl): This bit reflects the inverse value of the SD_CD_B pin. Debouncing is not performed on this bit. This bit may be valid when Card State Stable is set to 1, but it is not guaranteed because of propagation delay. Use of this bit is limited to testing since it must be debounced by software. 1 Card present (SD_CD_B=0) 0 No card present (SD_CD_B=1) 17 0b RO Card State Stable (crd_st_stable): This bit is used for testing. If it is 0, the Card Detect Pin Level is not stable. If this bit is set to 1, it means the Card Detect Pin Level is stable. No Card state can be detected by this bit is set to 1 and Card Inserted is set to 0. The Software Reset For All in the Software Reset register shall not affect this bit. 1 No Card or Inserted (stable) 0 Reset or Debouncing (unstable) 0b RO Card Inserted (crd_ins): This bit indicates whether a card has been inserted. The Host Controller shall debounce this signal so that the Host Driver will not need to wait for it to stabilize. Changing from 0 to 1 generates a Card Insertion interrupt in the Normal Interrupt Status register and changing from 1 to 0 generates a Card Removal interrupt in the Normal Interrupt Status register. The Software Reset For All in the Software Reset register shall not affect this bit. If a card is removed while its power is on and its clock is oscillating, the Host Controller shall clear SD Bus Power in the Power Control register and SD Clock Enable in the Clock Control register. When this bit is changed from 1 to 0, the Host Controller shall immediately stop driving CMD and DAT[3:0] (tri-state). In addition, the Host Driver should clear the Host Controller by the Software Reset For All in Software Reset register. The card detect is active regardless of the SD Bus Power. 1 Card Inserted 0 Reset or Debouncing or No Card 0h RO Reserved1 (reserved1): Reserved 0b RO Buffer Read Enable (buf_rd_en): This status is used for non-DMA read transfers. The Host Controller may implement multiple buffers to transfer data efficiently. This read only flag indicates that valid data exists in the host side buffer. If this bit is 1, readable data exists in the buffer. A change of this bit from 1 to 0 occurs when all the block data is read from the buffer. A change of this bit from 0 to 1 occurs when block data is ready in the buffer and generates the Buffer Read Ready interrupt. 1 Read enable 0 Read disable 0b RO Buffer Write Enable (buf_wr_en): This status is used for non-DMA write transfers. The Host Controller can implement multiple buffers to transfer data efficiently. This read only flag indicates if space is available for write data. If this bit is 1, data can be written to the buffer. A change of this bit from 1 to 0 occurs when all the block data is written to the buffer. A change of this bit from 0 to 1 occurs when top of block data can be written to the buffer and generates the Buffer Write Ready interrupt. The Host Controller should neither set Buffer Write Enable nor generate Buffer Write Ready Interrupt after the last block data is written to the Buffer Data Port Register. 1 Write enable 0 Write disable 0b RO Read Transfer Active (rd_tx_active): This status is used for detecting completion of a read transfer. (Refer to Section 3.12.3 in the SD Host Controller Simplified Specification Version 3.00) This bit is set to 1 for either of the following conditions: (1) After the end bit of the read command. (2) When read operation is restarted by writing a 1 to Continue Request in the Block Gap Control register. This bit is cleared to 0 for either of the following conditions: (1) When the last data block as specified by block length is transferred to the System. (2) In case of ADMA2, end of read operation is designated by Descriptor Table. (3) When all valid data blocks in the Host Controller have been transferred to the System and no current block transfers are being sent as a result of the Stop At Block Gap Request being set to 1. A Transfer Complete interrupt is generated when this bit changes to 0. 1 Transferring data 0 No valid data 19 16 15: 12 11 10 9 August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 623 Intel® Quark™ SoC X1000—SDIO/SD/eMMC Bit Range Default & Access Description 8 0b RO Write Transfer Active (wr_tx_active): This status indicates a write transfer is active. If this bit is 0, it means no valid write data exists in the Host Controller. (Refer to Section 3.12.4 in the SD Host Controller Simplified Specification Version 3.00) This bit is set in either of the following cases: (1) After the end bit of the write command. (2) When write operation is restarted by writing a 1 to Continue Request in the Block Gap Control register. This bit is cleared in either of the following cases: (1) After getting the CRC status of the last data block as specified by the transfer count (Single and Multiple) In case of ADMA2, transfer count is designated by Descriptor Table. (2) After getting the CRC status of any block where data transmission is about to be stopped by a Stop At Block Gap Request. During a write transaction, a Block Gap Event interrupt is generated when this bit is changed to 0, as the result of the Stop At Block Gap Request being set. This status is useful for the Host Driver in determining non DAT line commands can be issued during write busy. 1 Transferring data 0 No valid data 7: 4 0h RO Reserved (reserved): Reserved 0b RO Re-Tuning Request (re_tune_req): Host Controller may request Host Driver to execute re-tuning sequence by setting this bit when the data window is shifted by temperature drift and a tuned sampling point does not have a good margin to receive correct data. This bit is cleared when a command is issued with setting Execute Tuning in the Host Control 2 register. Changing of this bit from 0 to 1 generates Re-Tuning Event. Refer to Normal Interrupt Status registers for more detail. This bit isn't set to 1 if Sampling Clock Select in the Host Control 2 register is set to 0 (using fixed sampling clock). Refer to Re-Tuning Modes in the Capabilities register for more detail. 3 Intel® Quark™ SoC X1000 Datasheet 624 August 2015 Document Number: 329676-005US SDIO/SD/eMMC—Intel® Quark™ SoC X1000 Bit Range 2 1 0 Default & Access Description 0b RO DAT Line Active (dat_ln_active): This bit indicates whether one of the DAT line on SD Bus is in use. (a) In the case of read transactions This status indicates whether a read transfer is executing on the SD Bus. Changing this value from 1 to 0 generates a Block Gap Event interrupt in the Normal Interrupt Status register, as the result of the Stop At Block Gap Request being set. Refer to Section 3.12.3 for details on timing. This bit shall be set in either of the following cases: (1) After the end bit of the read command. (2) When writing a 1 to Continue Request in the Block Gap Control register to restart a read transfer. This bit shall be cleared in either of the following cases: (1) When the end bit of the last data block is sent from the SD Bus to the Host Controller. In case of ADMA2, the last block is designated by the last transfer of Descriptor Table. (2) When a read transfer is stopped at the block gap initiated by a Stop At Block Gap Request. The Host Controller shall stop read operation at the start of the interrupt cycle of the next block gap by driving Read Wait or stopping SD clock. If the Read Wait signal is already driven (due to data buffer cannot receive data), the Host Controller can continue to stop read operation by driving the Read Wait signal. It is necessary to support Read Wait in order to use suspend / resume function. (b) In the case of write transactions This status indicates that a write transfer is executing on the SD Bus. Changing this value from 1 to 0 generate a Transfer Complete interrupt in the Normal Interrupt Status register. Refer to Section 3.12.4 for sequence details. This bit shall be set in either of the following cases: (1) After the end bit of the write command. (2) When writing to 1 to Continue Request in the Block Gap Control register to continue a write transfer. This bit shall be cleared in either of the following cases: (1) When the SD card releases write busy of the last data block. If SD card does not drive busy signal for 8 SD Clocks, the Host Controller shall consider the card drive -Not Busy-. In case of ADMA2, the last block is designated by the last transfer of Descriptor Table. (2) When the SD card releases write busy prior to waiting for write transfer as a result of a Stop At Block Gap Request. (c) Command with busy This status indicates whether a command indicates busy (ex. erase command for memory) is executing on the SD Bus. This bit is set after the end bit of the command with busy and cleared when busy is de-asserted. Changing this bit from 1 to 0 generate a Transfer Complete interrupt in the Normal Interrupt Status register. Refer Figure 2-11 to Figure 2-13 on SD Host Controller Simplified Specification Version 3.00. 1 DAT Line Active 0 DAT Line Inactive 0b RO Command Inhibit (DAT) (cmd_inhibit_dat): This status bit is generated if either the DAT Line Active or the Read Transfer Active is set to 1. If this bit is 0, it indicates the Host Controller can issue the next SD Command. Commands with busy signal belong to Command Inhibit (DAT) (ex. R1b, R5b type). Changing from 1 to 0 generates a Transfer Complete interrupt in the Normal Interrupt Status register. Note: The SD Host Driver can save registers in the range of 000-00Dh for a suspend transaction after this bit has changed from 1 to 0. 1 Cannot issue command which uses the DAT line 0 Can issue command which uses the DAT line 0b RO Command Inhibit (CMD) (cmd_inhibit_cmd): If this bit is 0, it indicates the CMD line is not in use and the Host Controller can issue a SD Command using the CMD line. This bit is set immediately after the Command register (00Fh) is written. This bit is cleared when the command response is received. Auto CMD12 and Auto CMD23 consist of two responses. In this case, this bit is not cleared by the response of CMD12 or CMD23 but cleared by the response of a read/write command. Status issuing Auto CMD12 is not read from this bit. So if a command is issued during Auto CMD12 operation, Host Controller shall manage to issue two commands: CMD12 and a command set by Command register. Even if the Command Inhibit (DAT) is set to 1, commands using only the CMD line can be issued if this bit is 0. Changing from 1 to 0 generates a Command Complete Interrupt in the Normal Interrupt Status register. If the Host Controller cannot issue the command because of a command conflict error or because of Command Not Issued By Auto CMD12 Error (Refer to Section (Refer to Section 2.2.18 and 2.2.23 SD Host Controller Simplified Specification Version 3.00), this bit shall remain 1 and the Command Complete is not set. 1 Cannot issue command 0 Can issue command using only CMD line August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 625 Intel® Quark™ SoC X1000—SDIO/SD/eMMC 17.6.13 Host Control Register (HOST_CTL)—Offset 28h Access Method Type: Memory Mapped I/O Register (Size: 8 bits) HOST_CTL: [BAR0] + 28h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:0] + 10h Default: 00h 0 0 0 led_ctl 0 data_tx_wid 0 hi_spd_en 0 0 dma_sel crd_det_sig_sel 0 Bit Range 0 sd8_bit_mode 4 crd_det_tst_lvl 7 Default & Access Description 7 0b RW Card Detect Signal Selection (crd_det_sig_sel): This bit selects source for the card detection. When the source for the card detection is switched, the interrupt should be disabled during the switching period by clearing the Interrupt Status/Signal Enable register in order to mask unexpected interrupt being caused by the glitch. The Interrupt Status/Signal Enable should be disabled during over the period of debouncing. 1 The Card Detect Test Level is selected (for test purpose) 0 SD_CD_B is selected (for normal use) 6 0h RW Card Detect Test Level (crd_det_tst_lvl): This bit is enabled while the Card Detect Signal Selection is set to 1 and it indicates card inserted or not. Generates (card ins or card removal) interrupt when the normal int sts enable bit is set. 1 - Card Inserted 0 - No Card 0h RW Extended Data Transfer Width (sd8_bit_mode): This bit controls 8-bit bus width mode for embedded device. Support of this function is indicated in 8-bit Support for Embedded Device in the Capabilities register. If a device supports 8-bit bus mode, this bit may be set to 1. If this bit is 0, bus width is controlled by Data Transfer Width in the Host Control 1 register. This bit is not effective when multiple devices are installed on a bus slot (Slot Type is set to 10b in the Capabilities register). In this case, each device bus width is controlled by Bus Width Preset field in the Shared Bus Control register. 1 8-bit Bus Width 0 Bus Width is Selected by Data Transfer Width 00b RW DMA Select (dma_sel): One of supported DMA modes can be selected. The host driver shall check support of DMA modes by referring the Capabilities register. 00 - SDMA is selected 01 - 32-bit Address ADMA1 is selected 10 - 32-bit Address ADMA2 is selected 11 - 64-bit Address ADMA2 is selected NOTE: Codes 01 and 11 are not part of the SD Host Controller Simplified Specification Version 3.00 2 0b RW High Speed Enable (hi_spd_en): This bit is optional. Before setting this bit, the HD shall check the High Speed Support in the capabilities register. If this bit is set to 0 (default), the HC outputs CMD line and DAT lines at the falling edge of the SD clock (up to 25 MHz/ 20MHz for MMC). If this bit is set to 1, the HC outputs CMD line and DAT lines at the rising edge of the SD clock (up to 50 MHz for SD/52MHz for MMC)/ 208Mhz (for SD3.0) If Preset Value Enable in the Host Control 2 register is set to 1, Host Driver needs to reset SD Clock Enable before changing this field to avoid generating clock glitches. After setting this field, the Host Driver sets SD Clock Enable again 1 - High Speed Mode 0 - Normal Speed Mode 1 0h RW Data Transfer Width (SD1 or SD4) (data_tx_wid): This bit selects the data width of the Host Controller. The Host Driver shall set it to match the data width of the SD card. 1 4-bit mode 0 1-bit mode 5 4: 3 Intel® Quark™ SoC X1000 Datasheet 626 August 2015 Document Number: 329676-005US SDIO/SD/eMMC—Intel® Quark™ SoC X1000 Bit Range 0 17.6.14 Default & Access Description 0h RW LED Control (led_ctl): This bit is used to caution the user not to remove the card while the SD card is being accessed. If the software is going to issue multiple SD commands, this bit can be set during all these transactions. It is not necessary to change for each transaction. 1 LED on 0 LED off Power Control Register (PWR_CTL)—Offset 29h Access Method Type: Memory Mapped I/O Register (Size: 8 bits) PWR_CTL: [BAR0] + 29h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:0] + 10h Default: 00h 4 0 0 0 0 hw_rst 0 Bit Range Default & Access 7: 5 0h RO RSVD (rsvd): Reserved 4 0b RW HW reset (hw_rst): Hardware reset signal is generated for eMMC4.4 card when this bit is set. NOTE: Not part of the SD Host Controller Simplified Specification Version 3.00 0h RW SD Bus Voltage Select (sd_bus_volt_sel): By setting these bits, the Host Driver selects the voltage level for the SD card. Before setting this register, the Host Driver shall check the Voltage Support bits in the Capabilities register. If an unsupported voltage is selected, the Host System shall not supply SD Bus voltage. 111 3.3V (Typ.) 110 Reserved 101 Reserved 0b RW SD Bus Power (sd_bus_pwr): Before setting this bit, the SD Host Driver shall set SD Bus Voltage Select. If the Host Controller detects the No Card state, this bit shall be cleared. If this bit is cleared, the Host Controller shall immediately stop driving CMD and DAT[3:0] (tri-state) and drive SDCLK to low level (Refer to Section 2.2.14 of SD Host Controller Simplified Specification Version 3.00). 1 Power on 0 Power off 3: 1 0 17.6.15 0 sd_bus_pwr 0 rsvd 0 0 sd_bus_volt_sel 7 Description Block Gap Control Register (BLK_GAP_CTL)—Offset 2Ah Access Method Type: Memory Mapped I/O Register (Size: 8 bits) BLK_GAP_CTL: [BAR0] + 2Ah BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:0] + 10h August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 627 Intel® Quark™ SoC X1000—SDIO/SD/eMMC Default: 00h 0 0 0 0 0 spi_mode int_blk_gap rd_wait_ctl cont_req stp_blk_gap_req rsvd Bit Range 0 0 boot_en 4 0 alt_boot_en 7 0 Default & Access Description 7 0b RO RSVD (rsvd): Reserved 6 0b RW Alternate Boot Mode Enable (alt_boot_en): To start boot code access in alternative mode. 1 - To start alternate boot mode access 0 - To stop alternate boot mode access NOTE: Not part of the SD Host Controller Simplified Specification Version 3.00 5 0b RW Boot Enable (boot_en): To start boot code access 1 - To start boot code access 0 - To stop boot code access NOTE: Not part of the SD Host Controller Simplified Specification Version 3.00 4 0b RW SPI mode enable (spi_mode): SPI mode enable bit. 1 - SPI mode 0 - SD mode NOTE: Not part of the SD Host Controller Simplified Specification Version 3.00 0b RW Interrupt At Block Gap (int_blk_gap): This bit is valid only in 4-bit mode of the SDIO card and selects a sample point in the interrupt cycle. Setting to 1 enables interrupt detection at the block gap for a multiple block transfer. Setting to 0 disables interrupt detection during a multiple block transfer. If the SD card cannot signal an interrupt during a multiple block transfer, this bit should be set to 0. When the Host Driver detects an SD card insertion, it shall set this bit according to the CCCR of the SDIO card. 1 Enabled 0 Disabled 0b RW Read Wait Control (rd_wait_ctl): The read wait function is optional for SDIO cards. If the card supports read wait, set this bit to enable use of the read wait protocol to stop read data using the DAT[2] line. Otherwise, the Host Controller has to stop the SD Clock to hold read data, which restricts commands generation. When the Host Driver detects an SD card insertion, it shall set this bit according to the CCCR of the SDIO card. If the card does not support read wait, this bit shall never be set to 1 otherwise DAT line conflict may occur. If this bit is set to 0, Suspend/Resume cannot be supported. 1 Enable Read Wait Control 0 Disable Read Wait Control 0b RW Continue Request (cont_req): This bit is used to restart a transaction, which was stopped using the Stop At Block Gap Request. To cancel stop at the block gap, set Stop At Block Gap Request to 0 and set this bit 1 to restart the transfer. The Host Controller automatically clears this bit in either of the following cases: (1) In the case of a read transaction, the DAT Line Active changes from 0 to 1 as a read transaction restarts. (2) In the case of a write transaction, the Write Transfer Active changes from 0 to 1 as the write transaction restarts. Therefore, it is not necessary for Host Driver to set this bit to 0. If Stop At Block Gap Request is set to 1, any write to this bit is ignored. 1 Restart 0 Not affect 3 2 1 Intel® Quark™ SoC X1000 Datasheet 628 August 2015 Document Number: 329676-005US SDIO/SD/eMMC—Intel® Quark™ SoC X1000 Bit Range 0 17.6.16 Default & Access Description 0b RW Stop At Block Gap Request (stp_blk_gap_req): This bit is used to stop executing read and write transaction at the next block gap for non-DMA, SDMA and ADMA transfers. The Host Driver shall leave this bit set to 1 until the Transfer Complete is set to 1. Clearing both Stop At Block Gap Request and Continue Request shall not cause the transaction to restart. When Host Controller version is 1.00, the Host Driver can set this bit if the card supports Read Wait Control. When Host Controller version is 2.00 or later, the Host Driver can set this bit regardless of the card supports Read Wait Control. The Host Controller shall stop read transfer by using Read Wait or stopping SD clock. In case of write transfers in which the Host Driver writes data to the Buffer Data Port register, the Host Driver shall set this bit after all block data is written. If this bit is set to 1, the Host Driver shall not write data to Buffer Data Port register. This bit affects Read Transfer Active, Write Transfer Active, DAT Line Active and Command Inhibit (DAT) in the Present State register. 1 Stop 0 Transfer Clock Control Register (CLK_CTL)—Offset 2Ch This register is used configure the frequency of the SDIO controller, and enable the clock. Access Method Type: Memory Mapped I/O Register (Size: 16 bits) CLK_CTL: [BAR0] + 2Ch BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:0] + 10h Default: 0000h August 2015 Document Number: 329676-005US 0 0 0 0 0 0 0 0 0 0 int_clk_en 0 int_clk_stable 0 sd_clk_en 0 0 rsvd 0 4 clk_gen_sel 0 8 sdclk_freq_sel 0 12 upr_sdclk_freq_sel 15 Intel® Quark™ SoC X1000 Datasheet 629 Intel® Quark™ SoC X1000—SDIO/SD/eMMC Bit Range Default & Access Description 15: 8 00h RW SDCLK Frequency Select (sdclk_freq_sel): This register is used to select the frequency of the SDCLK pin. The frequency is not programmed directly; rather this register holds the divisor of the Base Clock Frequency For SD clock in the capabilities register. Only the following settings are allowed. (1) 8-bit Divided Clock Mode 80h - base clock divided by 256 40h - base clock divided by 128 20h - base clock divided by 64 10h - base clock divided by 32 08h - base clock divided by 16 04h - base clock divided by 8 02h - base clock divided by 4 01h - base clock divided by 2 00h - base clock(10MHz-63MHz) Setting 00h specifies the highest frequency of the SD Clock. When setting multiple bits, the most significant bit is used as the divisor. But multiple bits should not be set. The two default divider values can be calculated by the frequency that is defined by the Base Clock Frequency For SD Clock in the Capabilities register. - 400KHz divider value - 25MHz divider value - 50MHz divider value The frequency of the SDCLK is set by the following formula: Clock Frequency = (Base clock) / divisor. Thus choose the smallest possible divisor which results in a clock frequency that is less than or equal to the target frequency. Maximum Frequency for SD = 50Mhz (base clock) Maximum Frequency for MMC = 52Mhz (base clock) Minimum Frequency = 195.3125Khz (50Mhz / 256), same clock for MMC also. For example, if the Base Clock Frequency For SD Clock in the Capabilities register has the value 33MHz, and the target frequency is 25MHz, then choosing the divisor value of 01h will yield 16.5MHz, which is the nearest frequency less than or equal to the target. Similarly, to approach a clock value of 400KHz, the divisor value of 40h yields the optimal clock value of 258KHz. (2) 10-bit Divided Clock Mode Host Controller Version 3.00 supports this mandatory mode instead of the 8-bit Divided Clock Mode. The length of divider is extended to10 bits and all divider values shall be supported. 3FFh 1/2046 Divided Clock ... N 1/2N Divided Clock (Duty 50%) ... 002h 1/4 Divided Clock 001h 1/2 Divided Clock 000h Base Clock (10MHz-255MHz) (3) Programmable Clock Mode Host Controller Version 3.00 supports this mode as optional. A non-zero value set to Clock Multiplier in the Capabilities register indicates support of this clock mode. The multiplier enables the Host System to select a finer grain SD clock frequency. It is not necessary to support all frequency generation specified by this field because programmable clock generator is vendor specific and dependent on the implementation. Therefore, this mode is used with Preset Value registers. The Host Controller vendor provides possible settings and the Host System vendor sets appropriate values to the Preset Value registers. 3FFh Base Clock * M / 1024 ... N - 1 Base Clock * M / N ... 002h Base Clock * M / 3 001h Base Clock * M / 2 000h Base Clock * M This field depends on setting of Preset Value Enable in the Host Control 2 register. If Preset Value Enable = 0, this field is set by Host Driver. If the Preset Value Enable = 1, this field is automatically set to a value specified in one of Preset Value registers. 7: 6 00b RW Upper Bits of SDCLK Frequency Select (upr_sdclk_freq_sel): Host Controller Version 1.00 and 2.00 do not support these bits and they are treated as 00b fixed value (ROC). Host Controller Version 3.00 shall support these bits to expand SDCLK Frequency Select to 10-bit. Bit 07-06 is assigned to bit 09-08 of clock divider in SDCLK Frequency Select. Intel® Quark™ SoC X1000 Datasheet 630 August 2015 Document Number: 329676-005US SDIO/SD/eMMC—Intel® Quark™ SoC X1000 Bit Range Default & Access Description 5 0b RW Clock Generator Select (clk_gen_sel): This bit is used to select the clock generator mode in SDCLK Frequency Select. If the Programmable Clock Mode is supported (nonzero value is set to Clock Multiplier in the Capabilities register), this bit attribute is RW, and if not supported, this bit attribute is RO and zero is read. This bit depends on the setting of Preset Value Enable in the Host Control 2 register. If the Preset Value Enable = 0, this bit is set by Host Driver. If the Preset Value Enable = 1, this bit is automatically set to a value specified in one of Preset Value registers. 1 Programmable Clock Mode 0 Divided Clock Mode 4: 3 00b RO RSVD (rsvd): Reserved 2 0b RW SD Clock Enable (sd_clk_en): The Host Controller shall stop SDCLK when writing this bit to 0. SDCLK Frequency Select can be changed when this bit is 0. Then, the Host Controller shall maintain the same clock frequency until SDCLK is stopped (Stop at SDCLK=0). If the Card Inserted in the Present State register is cleared, this bit shall be cleared. 1 Enable 0 Disable 1 0b RO Internal Clock Stable (int_clk_stable): This bit is set to 1 when SD Clock is stable after writing to Internal Clock Enable in this register to 1. The SD Host Driver shall wait to set SD Clock Enable until this bit is set to 1. Note: This is useful when using PLL for a clock oscillator that requires setup time. 1 Ready 0 Not Ready 0b RW Internal Clock Enable (int_clk_en): This bit is set to 0 when the Host Driver is not using the Host Controller or the Host Controller awaits a wakeup interrupt. The Host Controller should stop its internal clock to go very low power state. Still, registers shall be able to be read and written. Clock starts to oscillate when this bit is set to 1. When clock oscillation is stable, the Host Controller shall set Internal Clock Stable in this register to 1. This bit shall not affect card detection. 1 Oscillate 0 Stop 0 17.6.17 Timeout Control Register (TIMEOUT_CTL)—Offset 2Eh At the initialization of the Host Controller, the Host Driver shall set the Data Timeout Counter Value according to the Capabilities register. Access Method Type: Memory Mapped I/O Register (Size: 8 bits) TIMEOUT_CTL: [BAR0] + 2Eh BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:0] + 10h Default: 00h 0 0 reserved 0 4 August 2015 Document Number: 329676-005US 0 0 0 0 0 0 data_timeout_cnt_val 7 Intel® Quark™ SoC X1000 Datasheet 631 Intel® Quark™ SoC X1000—SDIO/SD/eMMC Bit Range Default & Access 7: 4 0h RO Reserved (reserved): Reserved 0h RW Data Timeout Counter Value (data_timeout_cnt_val): This value determines the interval by which DAT line time-outs are detected. Refer to the Data Time-out Error in the Error Interrupt Status register for information on factors that dictate time-out generation. Time-out clock frequency will be generated by dividing the sdclockTMCLK by this value. When setting this register, prevent inadvertent time-out events by clearing the Data Time-out Error Status Enable (in the Error Interrupt Status Enable register). 1111 - Reserved 1110 - TMCLK * 2^27 --0001 - TMCLK * 2^14 0000 - TMCLK * 2^13 3: 0 17.6.18 Description Software Reset Register (SW_RST)—Offset 2Fh A reset pulse is generated when writing 1 to each bit of this register. After completing the reset, the Host Controller shall clear each bit. Because it takes some time to complete software reset, the SD Host Driver shall confirm that these bits are 0. Access Method Type: Memory Mapped I/O Register (Size: 8 bits) SW_RST: [BAR0] + 2Fh BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:0] + 10h Default: 00h 0 0 0 Bit Range Default & Access 7: 3 0h RO Intel® Quark™ SoC X1000 Datasheet 632 0 0 0 sw_rst_all 0 rsvd 0 0 sw_rst_cmd_ln 4 sw_rst_dat_ln 7 Description RSVD (rsvd): Reserved August 2015 Document Number: 329676-005US SDIO/SD/eMMC—Intel® Quark™ SoC X1000 Bit Range 2 1 0 17.6.19 Default & Access Description 0b RW Software Reset For DAT Line (sw_rst_dat_ln): Only part of data circuit is reset. The following registers and bits are cleared by this bit: - Buffer Data Port Register: Buffer is cleared and Initialized. - Present State register Buffer read Enable Buffer write Enable Read Transfer Active Write Transfer Active DAT Line Active Command Inhibit (DAT) - Block Gap Control register Continue Request Stop At Block Gap Request - Normal Interrupt Status register Buffer Read Ready Buffer Write Ready Block Gap Event Transfer Complete 1 - Reset 0 - Work 0h RW Software Reset For CMD Line (sw_rst_cmd_ln): Only part of command circuit is reset. The following registers and bits are cleared by this bit: - Present State register Command Inhibit (CMD) - Normal Interrupt Status register Command Complete 1 Reset 0 Work 0b RW Software Reset For All (sw_rst_all): This reset affects the entire Host Controller except for the card detection circuit. Register bits of type ROC, RW, RW1C, RWAC are cleared to 0. During its initialization, the Host Driver shall set this bit to 1 to reset the Host Controller. The Host Controller shall reset this bit to 0 when Capabilities registers are valid and the Host Driver can read them. Additional use of Software Reset For All may not affect the value of the Capabilities registers. If this bit is set to 1, the host driver should issue reset command and reinitialize the SD card. 1 Reset 0 Work Normal Interrupt Status Register (NML_INT_STATUS)—Offset 30h The Normal Interrupt Status Enable affects reads of this register, but Normal Interrupt Signal Enable does not affect these reads. An interrupt is generated when the Normal Interrupt Signal Enable is enabled and at least one of the status bits is set to 1. Writing 1 to a bit of RW1C attribute clears it; writing 0 keeps the bit unchanged. Writing 1 to a bit of ROC attribute keeps the bit unchanged. More than one status can be cleared with a single register write. The Card Interrupt is cleared when the card stops asserting the interrupt; that is, when the Card Driver services the interrupt condition. Access Method Type: Memory Mapped I/O Register (Size: 16 bits) NML_INT_STATUS: [BAR0] + 30h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:0] + 10h Default: 0000h August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 633 Intel® Quark™ SoC X1000—SDIO/SD/eMMC Bit Range int_b int_a crd_int crd_rm 0 0 0 0 0 0 0 cmd_comp 0 tx_comp 0 blk_gap_event 0 dma_int 0 0 buf_wr_rdy 0 buf_rd_rdy 0 crd_ins 0 int_c 4 re_tune 0 8 boot_ck_rcv 0 boot_ter_int 12 err_int 15 Default & Access Description 15 0b RO Error Interrupt (err_int): If any of the bits in the Error Interrupt Status Register are set, then this bit is set. Therefore the HD can test for an error by checking this bit first. 0 - No Error. 1 - Error. 14 0h RW/1C Boot Terminate Interrupt (boot_ter_int): This status is set if the boot operation get terminated. 0 - Boot operation is not terminated. 1 - Boot operation is terminated NOTE: Not part of the SD Host Controller Simplified Specification Version 3.00 13 0h RW/1C Boot Acknowledge Received (boot_ck_rcv): This status is set if the boot acknowledge is received from device. 0 - Boot ack is not received. 1 - Boot ack is received. NOTE: Not part of the SD Host Controller Simplified Specification Version 3.00 12 0h RO Re-Tuning Event (re_tune): This status is set if Re-Tuning Request in the Present State register changes from 0 to 1. Host Controller requests Host Driver to perform retuning for next data transfer. Current data transfer (not large block count) can be completed without re-tuning. 1 - Re-Tuning should be performed, 0 - Re-Tuning is not required 11 0h RO INT_C (int_c): This status is set if INT_C is enabled and INT_C# pin is in low level. Writing this bit to 1 does not clear this bit. It is cleared by resetting the INT_C interrupt factor 10 0h RO INT_B (int_b): This status is set if INT_B is enabled and INT_B# pin is in low level. Writing this bit to 1 does not clear this bit. It is cleared by resetting the INT_B interrupt factor 9 0h RO INT_A (int_a): This status is set if INT_A is enabled and INT_A# pin is in low level. Writing this bit to 1 does not clear this bit. It is cleared by resetting the INT_A interrupt factor 8 0b RO Card Interrupt (crd_int): Writing this bit to 1 does not clear this bit. It is cleared by resetting the SD card interrupt factor. In 1-bit mode, the HC shall detect the Card Interrupt without SD Clock to support wakeup. In 4-bit mode, the card interrupt signal is sampled during the interrupt cycle, so there are some sample delays between the interrupt signal from the card and the interrupt to the Host system. when this status has been set and the HD needs to start this interrupt service, Card Interrupt Status Enable in the Normal Interrupt Status register shall be set to 0 in order to clear the card interrupt statuses latched in the HC and stop driving the Host System. After completion of the card interrupt service (the reset factor in the SD card and the interrupt signal may not be asserted), set Card Interrupt Status Enable to 1 and start sampling the interrupt signal again. Interrupt detected by DAT[1] is supported when there is a card per slot. In case of shared bus, interrupt pins are used to detect interrupts. If 000b is set to Interrupt Pin Select in the Shared Bus Control register, this status is effective. Non-zero value is set to Interrupt Pin Select, INT_A, INT_B or INT_C is then used to device interrupts. 0 - No Card Interrupt, 1 - Generate Card Interrupt 7 0b RW/1C Card Removal (crd_rm): This status is set if the Card Inserted in the Present State register changes from 1 to 0. When the HD writes this bit to 1 to clear this status the status of the Card Inserted in the Present State register should be confirmed. Because the card detect may possibly be changed when the HD clear this bit an Interrupt event may not be generated. 0 - Card State Stable or Debouncing, 1 - Card Removed 6 0b RW/1C Card Insertion (crd_ins): This status is set if the Card Inserted in the Present State register changes from 0 to 1. When the HD writes this bit to 1 to clear this status the status of the Card Inserted in the Present State register should be confirmed. Because the card detect may possibly be changed when the HD clear this bit an Interrupt event may not be generated. 0 - Card State Stable or Debouncing, 1 - Card Inserted 5 0b RW/1C Buffer Read Ready (buf_rd_rdy): This status is set if the Buffer Read Enable changes from 0 to 1. Buffer Read Ready is set to 1 for every CMD19 execution in tuning procedure. 0 - Not Ready to read Buffer. 1 - Ready to read Buffer. Intel® Quark™ SoC X1000 Datasheet 634 August 2015 Document Number: 329676-005US SDIO/SD/eMMC—Intel® Quark™ SoC X1000 Bit Range Description 4 0b RW/1C Buffer Write Ready (buf_wr_rdy): This status is set if the Buffer Write Enable changes from 0 to 1. 0 - Not Ready to Write Buffer. 1 - Ready to Write Buffer. 3 0b RW/1C DMA Interrupt (dma_int): This status is set if the HC detects the Host DMA Buffer Boundary in the Block Size register. 0 - No DMA Interrupt, 1 - DMA Interrupt is Generated 0b RW/1C Block Gap Event (blk_gap_event): If the Stop At Block Gap Request in the Block Gap Control Register is set, this bit is set. Read Transaction: This bit is set at the falling edge of the DAT Line Active Status (When the transaction is stopped at SD Bus timing. The Read Wait must be supported in order to use this function). Write Transaction: This bit is set at the falling edge of Write Transfer Active Status (After getting CRC status at SD Bus timing). 0 - No Block Gap Event, 1 - Transaction stopped at Block Gap 0b RW/1C Transfer Complete (tx_comp): This bit is set when a read / write transfer and a command with busy is completed. (1) In the case of a Read Transaction This bit is set at the falling edge of Read Transfer Active Status. This interrupt is generated in two cases. The first is when a data transfer is completed as specified by data length (After the last data has been read to the Host System). The second is when data has stopped at the block gap and completed the data transfer by setting the Stop At Block Gap Request in the Block Gap Control register (After valid data has been read to the Host System). Refer to Section 3.12.3 of SD Host Controller Simplified Specification Version 3.00 for more details on the sequence of events. (2) In the case of a Write Transaction This bit is set at the falling edge of the DAT Line Active Status. This interrupt is generated in two cases. The first is when the last data is written to the SD card as specified by data length and the busy signal released. The second is when data transfers are stopped at the block gap by setting Stop At Block Gap Request in the Block Gap Control register and data transfers completed. (After valid data is written to the SD card and the busy signal released). Refer to Section 3.12.4 for more details on the sequence of events. (3) In the case of a command with busy This bit is set when busy is de-asserted. Refer to DAT Line Active and Command Inhibit (DAT) in the Present State register. Table on page 66 of SD Host Controller Simplified Specification Version 3.00, Relation between Transfer Complete and Data Timeout Error, shows that Transfer Complete has higher priority than Data Timeout Error. If both bits are set to 1, execution of a command can be considered to be completed. 1 Command execution is completed 0 Not complete While performing tuning procedure (Execute Tuning is set to 1), Transfer Complete is not set to 1. 0b RW/1C Command Complete (cmd_comp): This bit is set when get the end bit of the command response. Auto CMD12 and Auto CMD23 consist of two responses. Command Complete is not generated by the response of CMD12 or CMD23 but generated by the response of a read/write command. Refer to Command Inhibit (CMD) in the Present State register for how to control this bit. Table on page 67 of SD Host Controller Simplified Specification Version 3.00, Relation between command complete and command time-out error, shows that Command Timeout Error has higher priority than Command Complete. If both bits are set to 1, it can be considered that the response was not received correctly. 1 Command complete 0 No command complete 2 1 0 17.6.20 Default & Access Error Interrupt Status Register (ERR_INT_STATUS)—Offset 32h Signals defined in this register can be enabled by the Error Interrupt Status Enable register, but not by the Error Interrupt Signal Enable register. The interrupt is generated when the Error Interrupt Signal Enable is enabled and at least one of the statuses is set to 1. Writing to 1 clears the bit and writing to 0 keeps the bit unchanged. More than one status can be cleared at the one register write. Access Method August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 635 Intel® Quark™ SoC X1000—SDIO/SD/eMMC Type: Memory Mapped I/O Register (Size: 16 bits) ERR_INT_STATUS: [BAR0] + 32h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:0] + 10h Default: 0000h adma_err cmd12_err cur_limit_err 0 0 0 0 0 0 0 cmd_timeout_err 0 cmd_crc_err 0 cmd_end_bit_err 0 cmd_index_err 0 0 data_timeout_err 0 data_crc_err 0 data_end_bit_err 0 tune_err 4 rsvd 0 vend_spec_err_status 0 8 tgt_rsp_err 12 ceata_err 15 Bit Range Default & Access 15: 14 00b RW Vendor Specific Error Status (vend_spec_err_status): Reserved 13 0b RW CEATA Error Status (ceata_err): Occurs when ATA command termination has occurred due to an error condition the device has encountered. 0 - no error, 1 - error NOTE: Not part of the SD Host Controller Simplified Specification Version 3.00 12 0b RW Target Response Error (tgt_rsp_err): Occurs when detecting ERROR in m_hresp (dma transaction) 0 - no error, 1 - error NOTE: Not part of the SD Host Controller Simplified Specification Version 3.00 11 0b RO RSVD (rsvd): Reserved 10 0b RW Tuning Error (tune_err): This bit is set when an unrecoverable error is detected in a tuning circuit except during tuning procedure (Occurrence of an error during tuning procedure is indicated by Sampling Select). By detecting Tuning Error, Host Driver needs to abort a command executing and perform tuning. To reset tuning circuit, Sampling Clock shall be set to 0 before executing tuning procedure. The Tuning Error is higher priority than the other error interrupts generated during data transfer. By detecting Turning Error, the Host Driver should discard data transferred by a current read/write command and retry data transfer after the Host Controller retrieved from tuning circuit error. 1 - Error, 0 - No Error 9 0b RW ADMA Error (adma_err): This bit is set when the Host Controller detects errors during ADMA based data transfer. The state of the ADMA at an error occurrence is saved in the ADMA Error Status Register. 1 - Error, 0 - No Error 8 0b RW Auto CMD Error (cmd12_err): Auto CMD12 and Auto CMD23 use this error status. This bit is set when detecting that one of the bits D00-D04 in Auto CMD Error Status register has changed from 0 to 1. In case of Auto CMD12, this bit is set to 1, not only when the errors in Auto CMD12 occur but also when Auto CMD12 is not executed due to the previous command error. 0 - No Error, 1 - Error 7 0b RW Current Limit Error (cur_limit_err): By setting the SD Bus Power bit in the Power Control Register, the HC is requested to supply power for the SD Bus. If the HC supports the Current Limit Function, it can be protected from an Illegal card by stopping power supply to the card in which case this bit indicates a failure status. Reading 1 means the HC is not supplying power to SD card due to some failure. Reading 0 means that the HC is supplying power and no error has occurred. This bit shall always set to be 0, if the HC does not support this function. 0 - No Error, 1 - Power Fail 6 0b RW Data End Bit Error (data_end_bit_err): Occurs when detecting 0 at the end bit position of read data which uses the DAT line or the end bit position of the CRC status. 0 - No Error, 1 - Error 5 0b RW Data CRC Error (data_crc_err): Occurs when detecting CRC error when transferring read data which uses the DAT line or when detecting the Write CRC Status having a value of other than 010. 0 - No Error, 1 - Error Intel® Quark™ SoC X1000 Datasheet 636 Description August 2015 Document Number: 329676-005US SDIO/SD/eMMC—Intel® Quark™ SoC X1000 Bit Range 17.6.21 Default & Access Description 4 0b RW Data Timeout Error (data_timeout_err): Occurs when detecting one of following timeout conditions. 1. Busy Time-out for R1b, R5b type. 2. Busy Time-out after Write CRC status 3. Write CRC status Time-out 4. Read Data Time-out 0 - No Error, 1 Timeout 3 0b RW Command Index Error (cmd_index_err): Occurs if a Command Index error occurs in the Command Response. 0 - No Error, 1 - Error 2 0b RW Command End Bit Error (cmd_end_bit_err): Occurs when detecting that the end bit of a command response is 0. 0 - No Error, 1 - End Bit Error Generated 1 0b RW Command CRC Error (cmd_crc_err): Command CRC Error is generated in two cases. 1. If a response is returned and the Command Time-out Error is set to 0, this bit is set to 1 when detecting a CRT error in the command response 2. The HC detects a CMD line conflict by monitoring the CMD line when a command is issued. If the HC drives the CMD line to 1 level, but detects 0 level on the CMD line at the next SDCLK edge, then the HC shall abort the command (Stop driving CMD line) and set this bit to 1. The Command Time-out Error shall also be set to 1 to distinguish CMD line conflict. 0 - No Error, 1 CRC Error Generated 0 0b RW Command Timeout Error (cmd_timeout_err): Occurs only if the no response is returned within 64 SDCLK cycles from the end bit of the command. If the HC detects a CMD line conflict, in which case Command CRC Error shall also be set. This bit shall be set without waiting for 64 SDCLK cycles because the command will be aborted by the HC. 0 - No Error, 1 - Timeout Normal Interrupt Status Enable (NRM_INT_STATUS_EN)— Offset 34h Setting to 1 enables Interrupt Status. Access Method Type: Memory Mapped I/O Register (Size: 16 bits) NRM_INT_STATUS_EN: [BAR0] + 34h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:0] + 10h Default: 0000h Bit Range int_b_stat_en int_a_stat_en crd_int_stat_en crd_rm_stat_en Default & Access 0 0 0 0 0 0 0 cmd_comp_stat_en 0 tx_comp_stat_en 0 blk_gap_event_stat_en 0 0 dma_int_stat_en 0 buf_wr_rdy_stat_en 0 buf_rd_rdy_stat_en 0 crd_ins_stat_en 0 int_c_stat_en 4 re_tune_stat_en 0 8 boot_ack_rcv_stat_en 0 boot_ter_int_stat_en 12 fixed_0 15 Description 15 0h RO Fixed to 0 (fixed_0): The HC shall control error Interrupts using the Error Interrupt Status Enable register. 14 0h RW Boot Terminate Interrupt Status Enable (boot_ter_int_stat_en): 0 - Masked, 1 Enabled NOTE: Not part of the SD Host Controller Simplified Specification Version 3.00 13 0h RW Boot ACK Receive Enable (boot_ack_rcv_stat_en): 0 - Masked, 1 - Enabled NOTE: Not part of the SD Host Controller Simplified Specification Version 3.00 August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 637 Intel® Quark™ SoC X1000—SDIO/SD/eMMC Bit Range 17.6.22 Default & Access Description 12 0h RW Re-Tuning Event Status Enable (re_tune_stat_en): 0 - Masked, 1 - Enabled 11 0h RW INT_C Status Enable (int_c_stat_en): If this bit is set to 0, the Host Controller shall clear the interrupt request to the System. The Host Driver may clear this bit before servicing the INT_C and may set this bit again after all interrupt requests to INT_C pin are cleared to prevent inadvertent interrupts. 10 0h RW INT_B Status Enable (int_b_stat_en): If this bit is set to 0, the Host Controller shall clear the interrupt request to the System. The Host Driver may clear this bit before servicing the INT_B and may set this bit again after all interrupt requests to INT_B pin are cleared to prevent inadvertent interrupts. 9 0h RW INT_A Status Enable (int_a_stat_en): If this bit is set to 0, the Host Controller shall clear the interrupt request to the System. The Host Driver may clear this bit before servicing the INT_A and may set this bit again after all interrupt requests to INT_A pin are cleared to prevent inadvertent interrupts. 8 0b RW Card Interrupt Status Enable (crd_int_stat_en): If this bit is set to 0, the HC shall clear Interrupt request to the System. The Card Interrupt detection is stopped when this bit is cleared and restarted when this bit is set to 1. The HD may clear the Card Interrupt Status Enable before servicing the Card Interrupt and may set this bit again after all Interrupt requests from the card are cleared to prevent inadvertent Interrupts. 0 - Masked, 1 - Enabled 7 0h RW Card Removal Status Enable (crd_rm_stat_en): 0 - Masked, 1 - Enabled 6 0h RW Card Insertion Status Enable (crd_ins_stat_en): 0 - Masked, 1 - Enabled 5 0h RW Buffer Read Ready Status Enable (buf_rd_rdy_stat_en): 0 - Masked, 1 - Enabled 4 0h RW Buffer Write Ready Status Enable (buf_wr_rdy_stat_en): 0 - Masked, 1 - Enabled 3 0h RW DMA Interrupt Status Enable (dma_int_stat_en): 0 - Masked, 1 - Enabled 2 0h RW Block Gap Event Status Enable (blk_gap_event_stat_en): 0 - Masked, 1 - Enabled 1 0h RW Transfer Complete Status Enable (tx_comp_stat_en): 0 - Masked, 1 - Enabled 0 0h RW Command Complete Status Enable (cmd_comp_stat_en): 0 - Masked, 1 - Enabled Error Interrupt Status Enable Register (ERR_INT_STAT_EN)— Offset 36h Setting to 1 enables Interrupt Status. Access Method Type: Memory Mapped I/O Register (Size: 16 bits) ERR_INT_STAT_EN: [BAR0] + 36h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:0] + 10h Default: 0000h Intel® Quark™ SoC X1000 Datasheet 638 August 2015 Document Number: 329676-005US SDIO/SD/eMMC—Intel® Quark™ SoC X1000 17.6.23 adma_err_stat_en cmd12_err_stat_en cur_limit_err_stat_en 0 0 0 0 0 0 0 cmd_timeout_err_stat_en 0 cmd_crc_err_stat_en 0 cmd_end_bit_err_stat_en 0 0 cmd_ind_err_stat_en 0 data_timeout_err_stat_en 0 data_crc_err_stat_en 0 data_end_bit_err_stat_en 0 tune_err_stat_en 4 rsvd 0 rsvd0 0 8 tgt_rsp_err_en 12 ceata_err_en 15 Bit Range Default & Access 15: 14 0b RO Vendor Specific Error Status Enable (rsvd0): Reserved 13 0b RW CEATA Error Status Enable (ceata_err_en): 0 - Masked, 1 - Enabled NOTE: Not part of the SD Host Controller Simplified Specification Version 3.00 12 0b RW Target Response Error Status Enable (tgt_rsp_err_en): 0 - Masked, 1 - Enabled NOTE: Not part of the SD Host Controller Simplified Specification Version 3.00 11 0h RO RSVD (rsvd): Reserved 10 0h RW Tuning Error Status Enable (tune_err_stat_en): 0 - Masked, 1 - Enabled 9 0h RW ADMA Error Status Enable (adma_err_stat_en): 0 - Masked, 1 - Enabled 8 0h RW Auto CMD12 Error Status Enable (cmd12_err_stat_en): 0 - Masked, 1 - Enabled 7 0h RW Current Limit Error Status Enable (cur_limit_err_stat_en): 0 - Masked, 1 Enabled 6 0h RW Data End Bit Error Status Enable (data_end_bit_err_stat_en): 0 - Masked, 1 Enabled 5 0h RW Data CRC Error Status Enable (data_crc_err_stat_en): 0 - Masked, 1 - Enabled 4 0h RW Data Timeout Error Status Enable (data_timeout_err_stat_en): 0 - Masked, 1 Enabled 3 0h RW Command Index Error Status Enable (cmd_ind_err_stat_en): 0 - Masked, 1 Enabled 2 0h RW Command End Bit Error Status Enable (cmd_end_bit_err_stat_en): 0 - Masked, 1 - Enabled 1 0h RW Command CRC Error Status Enable (cmd_crc_err_stat_en): 0 - Masked, 1 Enabled 0 0h RW Command Timeout Error Status Enable (cmd_timeout_err_stat_en): 0 Masked, 1 - Enabled Description Normal Interrupt Signal Enable Register (NRM_INT_SIG_EN)— Offset 38h This register is used to select which interrupt status is indicated to the Host System as the interrupt. These status bits all share the same1 bit interrupt line. Setting any of these bits to 1 enables interrupt generation. August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 639 Intel® Quark™ SoC X1000—SDIO/SD/eMMC Access Method Type: Memory Mapped I/O Register (Size: 16 bits) NRM_INT_SIG_EN: [BAR0] + 38h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:0] + 10h Default: 0000h Bit Range int_b_sig_en int_a_sig_en crd_int_sig_en crd_rm_sig_en Default & Access 0 0 0 0 0 0 0 cmd_comp_sig_en 0 tx_comp_sig_en 0 blk_gap_event_sig_en 0 dma_int_sig_en 0 0 buf_wr_rdy_sig_en 0 buf_rd_rdy_sig_en 0 crd_ins_sig_en 0 int_c_sig_en 4 re_tune_sig_en 0 8 boot_ack_rcv_sig_en 0 boot_ter_int_sig_en 12 fixed_0 15 Description 15 0h RO Fixed to 0 (fixed_0): The HD shall control error Interrupts using the Error Interrupt Signal Enable register. 14 0h RW Boot Terminate Interrupt Signal Enable (boot_ter_int_sig_en): 0 - Masked, 1 Enabled NOTE: Not part of the SD Host Controller Simplified Specification Version 3.00 13 0h RW Boot ACK Received Signal Enable (boot_ack_rcv_sig_en): 0 - Masked, 1 Enabled NOTE: Not part of the SD Host Controller Simplified Specification Version 3.00 12 0h RW Re-Tuning Event Signal Enable (re_tune_sig_en): 0 - Masked, 1 - Enabled 11 0h RW INT_C Signal Enable (int_c_sig_en): 0 - Masked, 1 - Enabled 10 0h RW INT_B Signal Enable (int_b_sig_en): 0 - Masked, 1 - Enabled 9 0h RW INT_A Signal Enable (int_a_sig_en): Reserved. 8 0h RW Card Interrupt Signal Enable (crd_int_sig_en): 0 - Masked, 1 - Enabled 7 0h RW Card Removal Signal Enable (crd_rm_sig_en): 0 - Masked, 1 - Enabled 6 0h RW Card Insertion Signal Enable (crd_ins_sig_en): 0 - Masked, 1 - Enabled 5 0h RW Buffer Read Ready Signal Enable (buf_rd_rdy_sig_en): 0 - Masked, 1 - Enabled 4 0h RW Buffer Write Ready Signal Enable (buf_wr_rdy_sig_en): 0 - Masked, 1 - Enabled 3 0h RW DMA Interrupt Signal Enable (dma_int_sig_en): 0 - Masked, 1 - Enabled 2 0h RW Block Gap Event Signal Enable (blk_gap_event_sig_en): 0 - Masked, 1 - Enabled 1 0h RW Transfer Complete Signal Enable (tx_comp_sig_en): 0 - Masked, 1 - Enabled Intel® Quark™ SoC X1000 Datasheet 640 August 2015 Document Number: 329676-005US SDIO/SD/eMMC—Intel® Quark™ SoC X1000 Bit Range 0 17.6.24 Default & Access Description 0h RW Command Complete Signal Enable (cmd_comp_sig_en): 0 - Masked, 1 - Enabled Error Interrupt Signal Enable Register (ERR_INT_SIG_EN)— Offset 3Ah This register is used to select which interrupt status is notified to the Host System as the interrupt. These status bits all share the same 1 bit interrupt line. Setting any of these bits to 1 enables interrupt generation. Access Method Type: Memory Mapped I/O Register (Size: 16 bits) ERR_INT_SIG_EN: [BAR0] + 3Ah BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:0] + 10h Default: 0000h adma_err_sig_en cmd12_err_sig_en cur_limit_err_sig_en 0 0 0 0 0 0 0 cmd_timeout_err_stat_en 0 cmd_crc_err_stat_en 0 cmd_end_bit_err_stat_en 0 0 cmd_ind_err_stat_en 0 data_timeout_err_stat_en 0 data_crc_err_sig_en 0 data_end_bit_err_sig_en 0 tune_err_sig 4 rsvd 0 rsvd0 0 8 tgt_err_rsp_sig_en 12 ceata_err_sig_en 15 Bit Range Default & Access 15: 14 0b RO Vendor Specific Error Signal Enable (rsvd0): Reserved 13 0b RW CEATA Error Signal Enable (ceata_err_sig_en): 0 - Masked, 1 - Enabled NOTE: Not part of the SD Host Controller Simplified Specification Version 3.00 12 0b RW Target Response Error Signal Enable (tgt_err_rsp_sig_en): 0 - Masked, 1 Enabled NOTE: Not part of the SD Host Controller Simplified Specification Version 3.00 11 0h RO RSVD (rsvd): Reserved 10 0h RW Tuning Error Signal Enable (tune_err_sig): 0 - Masked, 1 - Enabled 9 0h RW ADMA Error Signal Enable (adma_err_sig_en): 0 - Masked, 1 - Enabled 8 0h RW Auto CMD12 Error Signal Enable (cmd12_err_sig_en): 0 - Masked, 1 - Enabled 7 0h RW Current Limit Error Signal Enable (cur_limit_err_sig_en): 0 - Masked, 1 - Enabled 6 0h RW Data End Bit Error Signal Enable (data_end_bit_err_sig_en): 0 - Masked, 1 Enabled August 2015 Document Number: 329676-005US Description Intel® Quark™ SoC X1000 Datasheet 641 Intel® Quark™ SoC X1000—SDIO/SD/eMMC Bit Range 17.6.25 Default & Access Description 5 0h RW Data CRC Error Signal Enable (data_crc_err_sig_en): 0 - Masked, 1 - Enabled 4 0h RW Data Timeout Error Signal Enable (data_timeout_err_stat_en): 0 - Masked, 1 Enabled 3 0h RW Command Index Error Signal Enable (cmd_ind_err_stat_en): 0 - Masked, 1 Enabled 2 0h RW Command End Bit Error Signal Enable (cmd_end_bit_err_stat_en): 0 - Masked, 1 - Enabled 1 0h RW Command CRC Error Signal Enable (cmd_crc_err_stat_en): 0 - Masked, 1 Enabled 0 0h RW Command Timeout Error Signal Enable (cmd_timeout_err_stat_en): 0 - Masked, 1 - Enabled Auto CMD12 Error Status Register (CMD12_ERR_STAT)—Offset 3Ch This register is used to indicate CMD12 response error of Auto CMD12 and CMD23 response error of Auto CMD23. The Host driver can determine what kind of Auto CMD12 / CMD23 errors occur by this register. Auto CMD23 errors are indicated in bit 04-01.This register is valid only when the Auto CMD Error is set. Access Method Type: Memory Mapped I/O Register (Size: 16 bits) CMD12_ERR_STAT: [BAR0] + 3Ch BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:0] + 10h Default: 0000h Bit Range Default & Access 0 0 0 0 0 0 0 0 0 cmd12_not_exe 0 cmd12_timeout_err 0 cmd12_crc_err 0 cmd12_end_bit_err 0 0 cmd12_ind_err 0 4 rsvd2 0 8 rsvd1 0 12 cmd_not_iss_cmd12_err 15 Description 15: 8 0h RO RSVD1 (rsvd1): Reserved 7 0b RO Command Not Issued By Auto CMD12 Error (cmd_not_iss_cmd12_err): CMD_wo_DAT is not executed due to an Auto CMD12 error (D04 - D01) in this register. This bit is set to 0 when Auto CMD Error is generated by Auto CMD23. 0 - No Error, 1 Not Issued 6: 5 0h RO RSVD2 (rsvd2): Reserved Intel® Quark™ SoC X1000 Datasheet 642 August 2015 Document Number: 329676-005US SDIO/SD/eMMC—Intel® Quark™ SoC X1000 Bit Range Default & Access Description 4 0b RO Auto CMD Index Error (cmd12_ind_err): Occurs if the Command Index error occurs in response to a command. 0 - No Error, 1 - Error 3 0b RO Auto CMD End Bit Error (cmd12_end_bit_err): Occurs when detecting that the end bit of command response is 0. 0 - No Error, 1 - End Bit Error Generated 2 0b RO Auto CMD CRC Error (cmd12_crc_err): Occurs when detecting a CRC error in the command response. 0 - No Error, 1 - CRC Error Generated 1 0b RO Auto CMD Timeout Error (cmd12_timeout_err): Occurs if the no response is returned within 64 SDCLK cycles from the end bit of the command. If this bit is set to 1, the other error status bits (D04 - D02) are meaningless. 0 - No Error, 1 - Timeout 0b RO Auto CMD12 Not Executed (cmd12_not_exe): If memory multiple block data transfer is not started due to command error, this bit is not set because it is not necessary to issue Auto CMD12. Setting this bit to 1 means the HC cannot issue Auto CMD12 to stop memory multiple block transfer due to some error. If this bit is set to 1, other error status bits (D04 - D01) are meaningless. This bit is set to 0 when Auto CMD Error is generated by Auto CMD23. 0 - Executed, 1 - Not Executed 0 17.6.26 Host Control 2 Register (HOST_CTRL_2)—Offset 3Eh Access Method Type: Memory Mapped I/O Register (Size: 16 bits) HOST_CTRL_2: [BAR0] + 3Eh BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:0] + 10h Default: 0000h Bit Range 0 4 0 0 0 0 0 0 0 0 0 uhs_mode 0 driver_strength 0 vl 8 0 execute_tuning 0 sampling_clock 0 rsvd0 0 async_int 12 0 preset_value 15 Default & Access Description 0b RW Preset Value Enable (preset_value): Host Controller Version 3.00 supports this bit. As the operating SDCLK frequency and I/O driver strength depend on the Host System implementation, it is difficult to determine these parameters in the Standard Host Driver. When Preset Value Enable is set to automatic This bit enables the functions defined in the Preset Value registers. 1 Automatic Selection by Preset Value are Enabled 0 SDCLK and Driver Strength are controlled by Host Driver If this bit is set to 0, SDCLK Frequency Select, Clock Generator Select in the Clock Control register and Driver Strength Select in Host Control 2 register are set by Host Driver. If this bit is set to 1, SDCLK Frequency Select, Clock Generator Select in the Clock Control register and Driver Strength Select in Host Control 2 register are set by Host Controller as specified in the Preset Value registers. 14 0b RW Asynchronous Interrupt Enable (async_int): This bit can be set to 1 if a card support asynchronous interrupt and Asynchronous Interrupt Support is set to 1 in the Capabilities register. Asynchronous interrupt is effective when DAT[1] interrupt is used in 4-bit SD mode (and zero is set to Interrupt Pin Select in the Shared Bus Control register). If this bit is set to 1, the Host Driver can stop the SDCLK during asynchronous interrupt period to save power. During this period, the Host Controller continues to deliver Card Interrupt to the host when it is asserted by the Card. 1 Enabled, 0 Disabled 13: 8 00h RO RSVD0 (rsvd0): Reserved 15 August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 643 Intel® Quark™ SoC X1000—SDIO/SD/eMMC Bit Range Default & Access Description 7 0b RW Sampling Clock Select (sampling_clock): This bit is set by tuning procedure when Execute Tuning is cleared. Writing 1 to this bit is meaningless and ignored. Setting 1 means that tuning is completed successfully and setting 0 means that tuning is failed. Host Controller uses this bit to select sampling clock to receive CMD and DAT. This bit is cleared by writing 0. Change of this bit is not allowed while the Host Controller is receiving response or a read data block. 1 Tuned clock is used to sample data, 0 Fixed clock is used to sample data 6 0b RW/AC Execute Tuning (execute_tuning): This bit is set to 1 to start tuning procedure and automatically cleared when tuning procedure is completed. The result of tuning is indicated to Sampling Clock Select. Tuning procedure is aborted by writing 0 for more detail about tuning procedure. 1 Execute Tuning, 0 Not Tuned or Tuning Completed 5: 4 0b RW Driver Strength Select (driver_strength): Host Controller output driver in 1.8V signaling is selected by this bit. In 3.3V signaling, this field is not effective. This field can be set depends on Driver Type A, C and D support bits in the Capabilities register. This bit depends on setting of Preset Value Enable. If Preset Value Enable = 0, this field is set by Host Driver. If Preset Value Enable = 1, this field is automatically set by a value specified in the one of Preset Value registers. 00b Driver Type B is Selected (Default), 01b Driver Type A is Selected, 10b Driver Type C is Selected, 11b Driver Type D is Selected 3 0b RO Reserved (vl): Reserved 0b RW UHS Mode Select (uhs_mode): This field is used to select one of UHS-I modes and effective when 1.8V Signaling Enable is set to 1. If Preset Value Enable in the Host Control 2 register is set to 1, Host Controller sets SDCLK Frequency Select, Clock Generator Select in the Clock Control register and Driver Strength Select according to Preset Value registers. In this case, one of preset value registers is selected by this field. Host Driver needs to reset SD Clock Enable before changing this field to avoid generating clock glitch. After setting this field, Host Driver sets SD Clock Enable again. 000b - SDR12, 001b - SDR25, 010b - SDR50, 011b - SDR104, 100b - DDR50, 101b 111 Reserved. When SDR50, SDR104 or DDR50 is selected for SDIO card, interrupt detection at the block gap shall not be used. Read Wait timing is changed for these modes. Refer to the SDIO Specification Version 3.00 for more detail. 2: 0 17.6.27 Capabilities Register (CAPABILITIES)—Offset 40h This register provides the Host Driver with information specific to the Host Controller implementation. The Host Controller may implement these values as fixed or loaded from flash memory during power on initialization. Refer to Software Reset For All in the Software Reset register for loading from flash memory and completion timing control. Access Method Type: Memory Mapped I/O Register (Size: 32 bits) CAPABILITIES: [BAR0] + 40h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:0] + 10h Default: 01EC32B2h Intel® Quark™ SoC X1000 Datasheet 644 August 2015 Document Number: 329676-005US SDIO/SD/eMMC—Intel® Quark™ SoC X1000 Bit Range 0 0 0 0 1 1 0 0 1 0 1 0 1 1 0 0 0 1 0 timeout_clock_frequency 1 4 rsvd6 1 8 timeout_clock_unit 0 12 base_clock_frequency_sd_clk 1 max_block_length volt_support_3p3v suspend_resume_support 1 extended_media_bus_support 1 rsvd5 1 16 adma2_support 0 sdma_support 0 high_speed_support 0 volt_support_3p0v 0 20 rsvd4 0 24 volt_support_1p8v 0 slot_type 0 async_int_support 28 sys_bus_support_64b 31 Default & Access Description 0b RO Slot Type (slot_type): This field indicates usage of a slot by a specific Host System. (A host controller register set is defined per slot.) Embedded slot for one device (01b) means that only one non-removable device is connected to a SD bus slot. Shared Bus Slot (10b) can be set if Host Controller supports Shared Bus Control register. The Standard Host Driver controls only a removable card or one embedded device is connected to a SD bus slot. If a slot is configured for shared bus (10b), the Standard Host Driver does not control embedded devices connected to a shared bus. Shared bus slot is controlled by a specific host driver developed by a Host System. 00b - Removable Card Slot, 01b - Embedded Slot for One Device, 10b - Shared Bus Slot, 11b - Reserved 29 0b RO Asynchronous Interrupt Support (async_int_support): Refer to SDIO Specification Version 3.00 about asynchronous interrupt. 1 - Asynchronous Interrupt Supported, 0 - Asynchronous Interrupt Not Supported 28 0b RO 64-bit System Bus Support (sys_bus_support_64b): 1 - supports 64 bit system address, 0 - Does not support 64 bit system address 27 0b RO RSVD4 (rsvd4): Reserved 26 0b RO Voltage Support 1.8V (volt_support_1p8v): 0 - 1.8V Not Supported, 1 - 1.8V Supported 25 0b RO Voltage Support 3.0V (volt_support_3p0v): 0 - 3.0V Not Supported, 1 - 3.0V Supported 24 1b RO Voltage Support 3.3V (volt_support_3p3v): 0 - 3.3V Not Supported, 1 - 3.3V Supported 23 1b RO Suspend/Resume Support (suspend_resume_support): This bit indicates whether the HC supports Suspend / Resume functionality. If this bit is 0, the Suspend and Resume mechanism are not supported and the HD shall not issue either Suspend / Resume commands. 0 - Not Supported, 1 - Supported 22 1b RO SDMA Support (sdma_support): This bit indicates whether the HC is capable of using DMA to transfer data between system memory and the HC directly. 0 - SDMA Not Supported, 1 - SDMA Supported. 21 1b RO High Speed Support (high_speed_support): This bit indicates whether the HC and the Host System support High Speed mode and they can supply SD Clock frequency from 25MHz to 50 MHz (for SD)/ 20MHz to 52MHz (for MMC). 0 - High Speed Not Supported, 1 - High Speed Supported 20 0b RO RSVD5 (rsvd5): Reserved 19 1b RO ADMA2 Support (adma2_support): 1 - ADMA2 support. 0 - ADMA2 not support 18 1b RO Extended Media Bus Support (extended_media_bus_support): This bit indicates whether the Host Controller is capable of using 8-bit bus width mode. This bit is not effective when Slot Type is set to 10b. In this case, refer to Bus Width Preset in the Shared Bus resister. 1 - Extended Media Bus Supported, 0 - Extended Media Bus not Supported 31: 30 August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 645 Intel® Quark™ SoC X1000—SDIO/SD/eMMC 17.6.28 Bit Range Default & Access Description 17: 16 00b RO Max Block Length (max_block_length): This value indicates the maximum block size that the HD can read and write to the buffer in the HC. The buffer shall transfer this block size without wait cycles. Three sizes can be defined as indicated below. 00 - 512 byte, 01 - 1024 byte, 10 - 2048 byte, 11 - 4096 byte 15: 8 32h RO Base Clock Frequency for SD Clock (base_clock_frequency_sd_clk): (1) 6-bit Base Clock Frequency This mode is supported by the Host Controller Version 1.00 and 2.00. Upper 2-bit is not effective and always 0. Unit values are 1MHz. The supported clock range is 10MHz to 63MHz. 11xx xxxxb - Not supported, 0011 1111b - 63MHz, 0000 0010b - 2MHz, 0000 0001b - 1MHz, 0000 0000b - Get information via another method. (2) 8-bit Base Clock Frequency This mode is supported by the Host Controller Version 3.00.Unit values are 1MHz. The supported clock range is 10MHz to 255MHz. FFh - 255MHz, 02h - 2MHz, 01h - 1MHz, 00h - Get information via another method. If the real frequency is 16.5MHz, the lager value shall be set 0001 0001b (17MHz) because the Host Driver use this value to calculate the clock divider value (Refer to the SDCLK Frequency Select in the Clock Control register.) and it shall not exceed upper limit of the SD Clock frequency. If these bits are all 0, the Host System has to get information via another method. 7 1b RO Timeout Clock Unit (timeout_clock_unit): This bit shows the unit of base clock frequency used to detect Data Timeout Error. 0 - KHz, 1 - MHz 6 0b RO RSVD6 (rsvd6): Reserved 5: 0 32h RO Timeout Clock Frequency (timeout_clock_frequency): This bit shows the base clock frequency used to detect Data Timeout Error. Not 0 - 1KHz to 63KHz or 1MHz to 63MHz, 000000b - Get Information via another method. Capabilities Register 2 (CAPABILITIES_2)—Offset 44h This register provides the host driver with information specific to the host controller implementation. Access Method Type: Memory Mapped I/O Register (Size: 32 bits) CAPABILITIES_2: [BAR0] + 44h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:0] + 10h Default: 03000000h 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 sdr50_support 0 ddr104_support 0 rsvd3 0 0 ddr50_support 0 driver_type_c_sup 0 driver_type_a_sup 0 rsvd2 0 4 driver_type_d_sup 1 8 tim_cnt_for_retune 1 rsvd1 0 12 use_tuning_for_sdr50 0 16 retune_modes 0 20 clk_mult 0 spi_mode 0 24 rsvd0 0 28 spi_blk_mode 31 Bit Range Default & Access 31: 26 0b RO RSVD0 (rsvd0): Reserved 1b RO SPI Block Mode (spi_blk_mode): SPI block mode. 0 - Not Supported, 1 - Supported NOTE: Not part of the SD Host Controller Simplified Specification Version 3.00 25 Intel® Quark™ SoC X1000 Datasheet 646 Description August 2015 Document Number: 329676-005US SDIO/SD/eMMC—Intel® Quark™ SoC X1000 Bit Range Default & Access Description 1b RO SPI Mode (spi_mode): SPI mode. 0 - Not Supported, 1 - Supported NOTE: Not part of the SD Host Controller Simplified Specification Version 3.00 0b RO Clock Multiplier (clk_mult): This field indicates clock multiplier value of programmable clock generator. Refer to Clock Control register. Setting 00h means that Host Controller does not support programmable clock generator. FFh Clock Multiplier M = 256, ...., 02h Clock Multiplier M = 3, 01h Clock Multiplier M = 2, 00h Clock Multiplier is Not Supported 0b RO Re-Tuning Modes (retune_modes): This field defines the re-tuning capability of a Host Controller and how to manage the data transfer length and a Re-Tuning Timer by the Host Driver 00 - Mode1, 01 - Mode2, 10 - Mode3, 11 - Reserved. There are two retuning timings: Re-Tuning Request and expiration of a Re-Tuning Timer. By receiving either timing, the Host Driver executes the re-tuning procedure just before a next command issue 13 0b RO Use Tuning for SDR50 (use_tuning_for_sdr50): If this bit is set to 1, this Host Controller requires tuning to operate SDR50. (Tuning is always required to operate SDR104.) 1 SDR50 requires tuning 0, SDR50 does not require tuning 12 0b RO RSVD1 (rsvd1): Reserved 11: 8 0h RO Timer count for Re-Tuning (tim_cnt_for_retune): This field indicates an initial value of the Re-Tuning Timer for Re-Tuning Mode 1 to 3. 0h - Get information via other source, 1h = 1 seconds, 2h = 2 seconds, 3h = 4 seconds, 4h = 8 seconds, --, n = 2(n1) seconds, --, Bh = 1024 seconds, Fh - Ch = Reserved 7 0b RO RSVD2 (rsvd2): Reserved 6 0b RO Driver Type D Support (driver_type_d_sup): This bit indicates support of Driver Type D for 1.8 Signaling. 1 - Driver Type D is Supported, 0 - Driver Type D is Not Supported. 5 0b RO Driver Type C Support (driver_type_c_sup): This bit indicates support of Driver Type C for 1.8 Signaling. 1 - Driver Type C is Supported, 0 - Driver Type C is Not Supported. 4 0b RO Driver Type A Support (driver_type_a_sup): This bit indicates support of Driver Type A for 1.8 Signaling. 1 - Driver Type A is Supported, 0 - Driver Type A is Not Supported. 3 0b RO RSVD3 (rsvd3): Reserved 2 0b RO DDR50 Support (ddr50_support): 1 - DDR50 is Supported, 0 - DDR50 is Not Supported 1 0b RO DDR104 Support (ddr104_support): 1 - DDR104 is Supported, 0 - DDR104 is Not Supported 0 0b RO SDR50 Support (sdr50_support): If SDR104 is supported, this bit shall be set to 1. Bit 40 indicates whether SDR50 requires tuning or not. 1 - SDR50 is Supported, 0 SDR50 is Not Supported 24 23: 16 15: 14 17.6.29 Maximum Current Capabilities Register (MAX_CUR_CAP)— Offset 48h These registers indicate maximum current capability for each voltage. The value is meaningful if Voltage Support is set in the Capabilities register. If this information is supplied by the Host System via another method, all Maximum Current Capabilities register shall be 0. Access Method August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 647 Intel® Quark™ SoC X1000—SDIO/SD/eMMC Type: Memory Mapped I/O Register (Size: 32 bits) MAX_CUR_CAP: [BAR0] + 48h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:0] + 10h Default: 00000001h 0 0 0 0 0 0 0 0 0 0 17.6.30 16 0 0 0 0 12 0 0 0 0 8 0 0 0 0 4 0 0 0 0 0 0 0 0 1 max_cur_3p3v 0 20 rsvd 0 24 max_cur_3p0v 28 max_cur_1p8v 31 Bit Range Default & Access 31: 24 0h RO RSVD (rsvd): Reserved 23: 16 00h RO Maximum Current for 1.8V (max_cur_1p8v): Maximum current capability for 1.8V 15: 8 00h RO Maximum Current for 3.0V (max_cur_3p0v): Maximum current capability for 3.0V 7: 0 01h RO Maximum Current for 3.3V (max_cur_3p3v): Maximum current capability for 3.3V Description Force Event Register for Auto CMD12 Error Status (FORCE_EVENT_CMD12_ERR_STAT)—Offset 50h The Force Event Register is not a physically implemented register. Rather, it is an address at which the Auto CMD Error Status Register can be written. Writing 1 : set each bit of the Auto CMD Error Status Register Writing 0 : no effect Access Method Type: Memory Mapped I/O Register (Size: 16 bits) FORCE_EVENT_CMD12_ERR_STAT: [BAR0] + 50h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:0] + 10h Default: 0000h Bit Range 15: 8 Intel® Quark™ SoC X1000 Datasheet 648 0 4 0 Default & Access 00h RO 0 0 0 0 0 0 0 0 cmd_not_exe 0 cmd_timeout_err 0 cmd_crc_err 0 cmd_end_bit_err 8 0 cmd_ind_err 0 reserved 12 0 reserved0 0 non_cmd12_err 15 Description Reserved0 (reserved0): Reserved August 2015 Document Number: 329676-005US SDIO/SD/eMMC—Intel® Quark™ SoC X1000 Bit Range 17.6.31 Default & Access Description 7 0b RW Force Event for Command Not Issued By Auto CMD12 Error (non_cmd12_err): 1 - Interrupt is generated, 0 - No interrupt 6: 5 00b RO Reserved (reserved): Reserved 4 0b RW Force Event for Auto CMD Index Error (cmd_ind_err): 1 - Interrupt is generated, 0 - No interrupt 3 0b RW Force Event for Auto CMD End Bit Error (cmd_end_bit_err): 1 - Interrupt is generated, 0 - No interrupt 2 0b RW Force Event for Auto CMD CRC Error (cmd_crc_err): 1 - Interrupt is generated, 0 No interrupt 1 0b RW Force Event for Auto CMD Timeout Error (cmd_timeout_err): 1 - Interrupt is generated, 0 - No interrupt 0 0b RW Force Event for Auto CMD Not Executed (cmd_not_exe): 1 - Interrupt is generated, 0 - No interrupt Force Event Register for Error Interrupt Status (FORCE_EVENT_ERR_INT_STAT)—Offset 52h The Force Event Register is not a physically implemented register. Rather, it is an address at which the Error Interrupt Status register can be written. The effect of a write to this address will be reflected in the Error Interrupt Status Register if the corresponding bit of the Error Interrupt Status Enable Register is set. Writing 1 : set each bit of the Error Interrupt Status Register Writing 0 : no effect Note: By setting this register, the Error Interrupt can be set in the Error Interrupt Status register. In order to generate interrupt signal, both the Error Interrupt Status Enable and Error Interrupt Signal Enable shall be set. Access Method Type: Memory Mapped I/O Register (Size: 16 bits) FORCE_EVENT_ERR_INT_STAT: [BAR0] + 52h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:0] + 10h Default: 0000h 0 0 0 0 cmd_timeout_err 0 cmd_crc_err 0 cmd_end_bit_err 0 0 cmd_ind_err 0 data_timeout_err 0 data_crc_err 0 data_end_bit_err 0 cur_limit_err 0 cmd12_err 0 4 adma_err 0 8 rsvd 0 rsvd0 0 tgt_rsp_err 12 ceata_err 15 Bit Range Default & Access 15: 14 00b RO Force Event for Vendor Specific Error Status (rsvd0): Reserved 0b RW Force Event for CEATA error (ceata_err): 1 - Interrupt is generated, 0 - No interrupt 13 August 2015 Document Number: 329676-005US Description Intel® Quark™ SoC X1000 Datasheet 649 Intel® Quark™ SoC X1000—SDIO/SD/eMMC Bit Range Default & Access Description 0b RW Force Event for Target Response Error (tgt_rsp_err): 1 - Interrupt is generated, 0 - No interrupt 11: 10 0h RO RSVD (rsvd): Reserved 9 0h RW Force Event for ADMA Error (adma_err): 1 - Interrupt is generated, 0 - No interrupt 8 0h RW Force Event for Auto CMD Error (cmd12_err): 1 - Interrupt is generated, 0 - No interrupt 7 0h RW Force Event for Current Limit Error (cur_limit_err): 1 - Interrupt is generated, 0 No interrupt 6 0h RW Force Event for Data End Bit Error (data_end_bit_err): 1 - Interrupt is generated, 0 - No interrupt 5 0h RW Force Event for Data CRC Error (data_crc_err): 1 - Interrupt is generated, 0 - No interrupt 4 0h RW Force Event for Data Timeout Error (data_timeout_err): 1 - Interrupt is generated, 0 - No interrupt 3 0h RW Force Event for Command Index Error (cmd_ind_err): 1 - Interrupt is generated, 0 - No interrupt 2 0h RW Force Event for Command End Bit Error (cmd_end_bit_err): 1 - Interrupt is generated, 0 - No interrupt 1 0h RW Force Event for Command CRC Error (cmd_crc_err): 1 - Interrupt is generated, 0 No interrupt 0 0h RW Force Event for Command Timeout Error (cmd_timeout_err): 1 - Interrupt is generated, 0 - No interrupt 12 17.6.32 ADMA Error Status Register (ADMA_ERR_STAT)—Offset 54h When ADMA Error Interrupt is occurred, the ADMA Error States field in this register holds the ADMA state and the ADMA System Address Register holds the address around the error descriptor. For recovering the error, the Host Driver requires the ADMA state to identify the error descriptor address as follows: ST_STOP: Previous location set in the ADMA System Address register is the error descriptor address ST_FDS: Current location set in the ADMA System Address register is the error descriptor address ST_CADR: This sate is never set because do not generate ADMA error in this state. ST_TFR: Previous location set in the ADMA System Address register is the error descriptor address In case of write operation, the Host Driver should use ACMD22 to get the number of written block rather than using this information, since unwritten data may exist in the Host Controller. The Host Controller generates the ADMA Error Interrupt when it detects invalid descriptor data (Valid=0) at the ST_FDS state. In this case, ADMA Error State indicates that an error occurs at ST_FDS state. The Host Driver may find that the Valid bit is not set in the error descriptor. Access Method Type: Memory Mapped I/O Register (Size: 8 bits) ADMA_ERR_STAT: [BAR0] + 54h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:0] + 10h Default: 00h Intel® Quark™ SoC X1000 Datasheet 650 August 2015 Document Number: 329676-005US SDIO/SD/eMMC—Intel® Quark™ SoC X1000 7 4 0 0 0 0 0 adma_err_state Bit Range Default & Access 7: 3 0h RO RSVD (rsvd): Reserved 2 0b RO ADMA Length Mismatch Error (adma_len_mis_err): This error occurs in the following 2 cases. 1. While Block Count Enable being set, the total data length specified by the Descriptor table is different from that specified by the Block Count and Block Length. 2. Total data length can not be divided by the block length. 1 - Error, 0 - No error 00b RO ADMA Error State (adma_err_state): This field indicates the state of ADMA when error is occurred during ADMA data transfer. This field never indicates 10 because ADMA never stops in this state. D01 D00: ADMA Error State when error is occurred Contents of SYS_SDR register, 00 - ST_STOP (Stop DMA) Points next of the error descriptor, 01 ST_FDS (Fetch Descriptor) Points the error descriptor, 10 - Never set this state (Not used), 11 - ST_TFR (Transfer Data) Points the next of the error descriptor 1: 0 17.6.33 0 adma_len_mis_err 0 rsvd 0 0 Description ADMA System Address Register (ADMA_SYS_ADDR)—Offset 58h This register contains the physical Descriptor address used for ADMA data transfer. Access Method Type: Memory Mapped I/O Register (Size: 32 bits) ADMA_SYS_ADDR: [BAR0] + 58h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:0] + 10h Default: 00000000h 31 0 0 0 24 0 0 0 0 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 0 4 0 0 0 0 0 0 0 0 0 adma_sys_addr 0 28 Bit Range 31: 0 Default & Access Description 0h RW ADMA System Address (adma_sys_addr): This register holds byte address of executing command of the Descriptor table. 32-bit Address Descriptor uses lower 32- bit of this register. At the start of ADMA, the Host Driver shall set start address of the Descriptor table. The ADMA increments this register address, which points to next line, when every fetching a Descriptor line. When the ADMA Error Interrupt is generated, this register shall hold valid Descriptor address depending on the ADMA state. The Host Driver shall program Descriptor Table on 32-bit boundary and set 32-bit boundary address to this register. ADMA2 ignores lower 2-bit of this register and assumes it to be 00b. August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 651 Intel® Quark™ SoC X1000—SDIO/SD/eMMC 17.6.34 initialization Preset Values Register (3.3v or 1.8v) (PRESET_VALUE_0)—Offset 60h Access Method Type: Memory Mapped I/O Register (Size: 16 bits) PRESET_VALUE_0: [BAR0] + 60h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:0] + 10h Default: 0040h 12 0 0 rsvd Bit Range Default & Access 15: 14 00b RO 13: 11 000b RO 0b RO 10 040h RO 9: 0 17.6.35 0 0 0 0 4 0 1 0 0 0 0 0 0 0 sdclk_freq_sel_val 0 driver_strength_sel_val 0 8 clock_gen_sel_val 15 Description Reserved (driver_strength_sel_val): Reserved Reserved (rsvd): Reserved Clock Generator Select Value (clock_gen_sel_val): This bit is effective when Host Controller supports programmable clock generator. 1 - Programmable Clock Generator, 0 - Host Controller Ver2.00 Compatible Clock Generator SDCLK Frequency Select Value (sdclk_freq_sel_val): 10-bit preset value to set SDCLK Frequency Select in the Clock Control Register is described by a host system. Default Speed Preset Values Register (PRESET_VALUE_1)— Offset 62h Access Method Type: Memory Mapped I/O Register (Size: 16 bits) PRESET_VALUE_1: [BAR0] + 62h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:0] + 10h Default: 0001h Intel® Quark™ SoC X1000 Datasheet 652 0 0 0 0 clock_gen_sel_val 0 driver_strength_sel_val 0 8 0 0 4 0 0 0 0 0 0 0 0 1 sdclk_freq_sel_val 12 rsvd 15 August 2015 Document Number: 329676-005US SDIO/SD/eMMC—Intel® Quark™ SoC X1000 17.6.36 Bit Range Default & Access 15: 14 00b RO 13: 11 000b RO Description Reserved (driver_strength_sel_val): Reserved Reserved (rsvd): Reserved 10 0b RO Clock Generator Select Value (clock_gen_sel_val): This bit is effective when Host Controller supports programmable clock generator. 1 - Programmable Clock Generator, 0 - Host Controller Ver2.00 Compatible Clock Generator 9: 0 1h RO SDCLK Frequency Select Value (sdclk_freq_sel_val): 10-bit preset value to set SDCLK Frequency Select in the Clock Control Register is described by a host system. High Speed Preset Values Register (PRESET_VALUE_2)—Offset 64h Access Method Type: Memory Mapped I/O Register (Size: 16 bits) PRESET_VALUE_2: [BAR0] + 64h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:0] + 10h Default: 0000h 12 0 17.6.37 rsvd 0 Bit Range Default & Access 15: 14 00b RO 13: 11 000b RO 0 0 0 0 4 0 0 0 0 0 0 0 0 0 sdclk_freq_sel_val 0 driver_strength_sel_val 0 8 clock_gen_sel_val 15 Description Reserved (driver_strength_sel_val): Reserved Reserved (rsvd): Reserved 10 0b RO Clock Generator Select Value (clock_gen_sel_val): This bit is effective when Host Controller supports programmable clock generator. 1 - Programmable Clock Generator, 0 - Host Controller Ver2.00 Compatible Clock Generator 9: 0 0h RO SDCLK Frequency Select Value (sdclk_freq_sel_val): 10-bit preset value to set SDCLK Frequency Select in the Clock Control Register is described by a host system. SDR12 Preset Values Register (PRESET_VALUE_3)—Offset 66h Access Method August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 653 Intel® Quark™ SoC X1000—SDIO/SD/eMMC Type: Memory Mapped I/O Register (Size: 16 bits) PRESET_VALUE_3: [BAR0] + 66h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:0] + 10h Default: 0001h 12 0 17.6.38 0 rsvd 0 Bit Range Default & Access 15: 14 00b RO 13: 11 000b RO 0 0 0 4 0 0 0 0 0 0 0 0 1 sdclk_freq_sel_val 0 driver_strength_sel_val 0 8 clock_gen_sel_val 15 Description Reserved (driver_strength_sel_val): Reserved Reserved (rsvd): Reserved 10 0b RO Clock Generator Select Value (clock_gen_sel_val): This bit is effective when Host Controller supports programmable clock generator. 1 - Programmable Clock Generator, 0 - Host Controller Ver2.00 Compatible Clock Generator 9: 0 1h RO SDCLK Frequency Select Value (sdclk_freq_sel_val): 10-bit preset value to set SDCLK Frequency Select in the Clock Control Register is described by a host system. SDR25 Preset Values Register (PRESET_VALUE_4)—Offset 68h Access Method Type: Memory Mapped I/O Register (Size: 16 bits) PRESET_VALUE_4: [BAR0] + 68h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:0] + 10h Default: 0000h Intel® Quark™ SoC X1000 Datasheet 654 0 0 0 0 clock_gen_sel_val 0 driver_strength_sel_val 0 8 0 0 4 0 0 0 0 0 0 0 0 0 sdclk_freq_sel_val 12 rsvd 15 August 2015 Document Number: 329676-005US SDIO/SD/eMMC—Intel® Quark™ SoC X1000 17.6.39 Bit Range Default & Access 15: 14 00b RO 13: 11 000b RO Description Reserved (driver_strength_sel_val): Reserved Reserved (rsvd): Reserved 10 0b RO Clock Generator Select Value (clock_gen_sel_val): This bit is effective when Host Controller supports programmable clock generator. 1 - Programmable Clock Generator, 0 - Host Controller Ver2.00 Compatible Clock Generator 9: 0 0h RO SDCLK Frequency Select Value (sdclk_freq_sel_val): 10-bit preset value to set SDCLK Frequency Select in the Clock Control Register is described by a host system. SDR50 Preset Values Register (PRESET_VALUE_5)—Offset 6Ah Access Method Type: Memory Mapped I/O Register (Size: 16 bits) PRESET_VALUE_5: [BAR0] + 6Ah BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:0] + 10h Default: 0000h 12 0 17.6.40 0 rsvd 0 Bit Range Default & Access 15: 14 00b RO 13: 11 000b RO 0 0 0 4 0 0 0 0 0 0 0 0 0 sdclk_freq_sel_val 0 driver_strength_sel_val 0 8 clock_gen_sel_val 15 Description Reserved (driver_strength_sel_val): Reserved Reserved (rsvd): Reserved 10 0b RO Clock Generator Select Value (clock_gen_sel_val): This bit is effective when Host Controller supports programmable clock generator. 1 - Programmable Clock Generator, 0 - Host Controller Ver2.00 Compatible Clock Generator 9: 0 0h RO SDCLK Frequency Select Value (sdclk_freq_sel_val): 10-bit preset value to set SDCLK Frequency Select in the Clock Control Register is described by a host system. SDR104 Preset Values Register (PRESET_VALUE_6)—Offset 6Ch Access Method Type: Memory Mapped I/O Register (Size: 16 bits) PRESET_VALUE_6: [BAR0] + 6Ch BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:0] + 10h August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 655 Intel® Quark™ SoC X1000—SDIO/SD/eMMC Default: 0000h 12 0 17.6.41 8 0 rsvd 0 Bit Range Default & Access 15: 14 00b RO 13: 11 000b RO 0 0 0 4 0 0 0 0 0 0 0 0 0 sdclk_freq_sel_val 0 driver_strength_sel_val 0 clock_gen_sel_val 15 Description Reserved (driver_strength_sel_val): Reserved Reserved (rsvd): Reserved 10 0b RO Clock Generator Select Value (clock_gen_sel_val): This bit is effective when Host Controller supports programmable clock generator. 1 - Programmable Clock Generator, 0 - Host Controller Ver2.00 Compatible Clock Generator 9: 0 0h RO SDCLK Frequency Select Value (sdclk_freq_sel_val): 10-bit preset value to set SDCLK Frequency Select in the Clock Control Register is described by a host system. DDR50 Preset Values Register (PRESET_VALUE_7)—Offset 6Eh Access Method Type: Memory Mapped I/O Register (Size: 16 bits) PRESET_VALUE_7: [BAR0] + 6Eh BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:0] + 10h Default: 0000h 0 0 Bit Range Default & Access 15: 14 00b RO 13: 11 000b RO Intel® Quark™ SoC X1000 Datasheet 656 0 rsvd driver_strength_sel_val 0 8 0 0 0 0 4 0 0 0 0 0 0 0 0 0 sdclk_freq_sel_val 12 clock_gen_sel_val 15 Description Reserved (driver_strength_sel_val): Reserved Reserved (rsvd): Reserved August 2015 Document Number: 329676-005US SDIO/SD/eMMC—Intel® Quark™ SoC X1000 Bit Range 17.6.42 Default & Access Description 10 0b RO Clock Generator Select Value (clock_gen_sel_val): This bit is effective when Host Controller supports programmable clock generator. 1 - Programmable Clock Generator, 0 - Host Controller Ver2.00 Compatible Clock Generator 9: 0 0h RO SDCLK Frequency Select Value (sdclk_freq_sel_val): 10-bit preset value to set SDCLK Frequency Select in the Clock Control Register is described by a host system. Boot Time-out control register (BOOT_TIMEOUT_CTRL)—Offset 70h Access Method Type: Memory Mapped I/O Register (Size: 32 bits) BOOT_TIMEOUT_CTRL: [BAR0] + 70h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:0] + 10h Default: 00000000h 31 0 0 0 24 0 0 0 0 20 0 0 0 0 16 0 0 0 0 12 0 0 0 0 8 0 0 0 0 4 0 0 0 0 0 0 0 0 0 time_cnt_val 0 28 Bit Range 31: 0 17.6.43 Default & Access Description Boot Data Timeout Counter Value (time_cnt_val): This value determines the interval by which DAT line time-outs are detected during boot operation for eMMC4.4 card. The value is in number of sd clock. 0h RW Debug Selection Register (DEBUG_SEL)—Offset 74h Access Method Type: Memory Mapped I/O Register (Size: 8 bits) DEBUG_SEL: [BAR0] + 74h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:0] + 10h Default: 00h 4 0 0 0 0 rsvd 0 0 Bit Range Default & Access 7: 1 00h RO August 2015 Document Number: 329676-005US 0 0 0 debug_sel 7 Description Reserved (rsvd): Reserved Intel® Quark™ SoC X1000 Datasheet 657 Intel® Quark™ SoC X1000—SDIO/SD/eMMC Bit Range Default & Access 17.6.44 Debug Select (debug_sel): 1- cmd register, Interrupt status, transmitter module, ahb_iface module and clk sdcard signals are probed out. 0 - receiver module and fifo_ctrl module signals are probed out 0b WO 0 Description Shared Bus Control Register (SHARED_BUS)—Offset E0h This register is optional. The devices on shared bus are not intended to be controlled by the Standard Host Driver. This is because shared bus configuration depends on a host system; the devices on shared bus may be controlled by a specific driver of a host system. Access Method Type: Memory Mapped I/O Register (Size: 32 bits) SHARED_BUS: [BAR0] + E0h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:0] + 10h Default: 00000000h Bit Range 31 30: 24 23 22: 20 19 Intel® Quark™ SoC X1000 Datasheet 658 0 0 0 0 0 Default & Access 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 num_clk_pin 0 0 rsvd5 0 num_int_pin 0 4 rsvd4 0 8 bus_width 0 12 rsvd3 0 clk_pin 0 16 rsvd2 0 20 int_pin 0 24 pwr_ctrl 0 rsvd0 0 28 rsvd1 31 Description 0b RO Reserved (rsvd0): Reserved 0h RW Back-End Power Control (pwr_ctrl): Each bit of this field controls back-end power supply for an embedded device. Host interface voltage (VDDH) is not controlled by this field. The number of devices supported is specified by Number of Clock Pins and a maximum of 7 devices can be controlled. D16 Back-end Power Control for Device 1 D17 Back-end Power Control for Device 2 D18 Back-end Power Control for Device 3 D19 Back-end Power Control for Device 4 D20 Back-end Power Control for Device 5 D21 Back-end Power Control for Device 6 D22 Back-end Power Control for Device 7 The function of each bit is defined as follows: 0 Back-end Power is Off 1 Back-end Power is Supplied Back-End power control is effective for embedded memory devices in the Sleep State that support the Sleep command (CMD14) to reduce power consumption and embedded SDIO devices when IOEx is set to 0. 0b RO Reserved (rsvd1): Reserved 0h RW Interrupt Pin Select (int_pin): Interrupt pin inputs are enabled by this field. Enable of unsupported interrupt pin is meaningless. 000b - Interrupt is detected by Interrupt Cycle, xx1b - INT_A is Enabled, x1xb - INT_B is Enabled, 1xxb - INT_C is Enabled 0b RO Reserved (rsvd2): Reserved August 2015 Document Number: 329676-005US SDIO/SD/eMMC—Intel® Quark™ SoC X1000 Bit Range Default & Access Description 0h RW Clock Pin Select (clk_pin): One of clock pin outputs is selected by this field. Select of unsupported clock pin is meaningless. Refer to Figure 2-38 (An Example Timing of Selecting Clock Pin) on SD Host Controller Simplified Specification Version 3.00 for the timing of clock outputs. 000b - Clock Pins are Disabled, 001b - CLK[1] is Selected, 010b - CLK[2] is Selected --111b - CLK[7] is Selected 0b RO Reserved (rsvd3): Reserved 14: 8 0h RO Bus Width Preset (bus_width): Shared bus supports mixing of 4-bit and 8- bit bus width devices. Each bit of this field specifies the bus width for each embedded device. The number of devices supported is specified by Number of Clock Pins and a maximum of 7 devices are supported.This field is effective when multiple devices are connected to a shared bus (Slot Type is set to 10b in the Capabilities register). In the other case, Extended Data Transfer Width in the Host Control 1 register is used to select 8-bit bus width. As use of 1-bit mode is not intended for shared bus, Data Transfer Width in the Host Control 1 register should be set to 1. D08 - Bus width preset for Device 1, D09 Bus width preset for Device 2, D10 - Bus width preset for Device 3, D11 - Bus width preset for Device 4, D12 - Bus width preset for Device 5, D13 - Bus width preset for Device 6, D14 - Bus width preset for Device 7 The function of each bit is defined as follows: 0 - 4 bit bus width mode, 1 - 8 bit bus width mode 7: 6 00b RO Reserved (rsvd4): Reserved 5: 4 0h RO Number of Interrupt Input Pins (num_int_pin): This field indicates support of interrupt input pins for shared bus system.Three asynchronous interrupt pins are defined, INT_A#, INT_B# and INT_C#. Which interrupt pin is used is determined by the system. Each one is driven by open drain and then wired or connection is possible. 00b - Interrupt Input Pin is Not Supported, 01b - INTA is Supported, 10b - INTA and INTB are Supported, 11b - INTA, INTB and INTC are Supported 3 0b RO Reserved (rsvd5): Reserved 0h RO Number of Clock Pins (num_clk_pin): This field indicates support of clock pins to select one of devices for shared bus system. Up to 7 clock pins can be supported.Shared bus is supported by specific system. Then Standard Host Driver does not support control of these clock pins. 000b - Shared bus is not supported, 001b - 1 SDCLK pin is supported, 010b - 2 SDCLK pins are supported, ..... , 111b - 7 SDCLK pins are supported 18: 16 15 2: 0 17.6.45 SPI Interrupt Support Register (SPI_INT_SUP)—Offset F0h Access Method Type: Memory Mapped I/O Register (Size: 8 bits) SPI_INT_SUP: [BAR0] + F0h BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:0] + 10h Default: 00h 7 4 0 0 0 0 0 0 0 0 spi_int_support 0 August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 659 Intel® Quark™ SoC X1000—SDIO/SD/eMMC 17.6.46 Bit Range Default & Access Description 7: 0 00h RW SPI Interrupt Support (spi_int_support): This bit is set to indicate the assertion of interrupts in the SPI mode at any time, irrespective of the status of the card select (CS) line. If this bit is zero, then SDIO card can only assert the interrupt line in the SPI mode when the CS line is asserted. NOTE: Not part of the SD Host Controller Simplified Specification Version 3.00 Slot Interrupt Status Register (SLOT_INT_STAT)—Offset FCh Access Method Type: Memory Mapped I/O Register (Size: 16 bits) SLOT_INT_STAT: [BAR0] + FCh BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:0] + 10h Default: 0000h 0 0 8 0 0 0 0 0 4 0 0 0 Bit Range Default & Access 15: 8 7: 0 17.6.47 0 0 reserved 0 12 0 0 0 0 int_sig_slot 15 Description 00h RO Reserved (reserved): Reserved 00h RO Interrupt Signal For Each Slot (int_sig_slot): These status bit indicate the logical OR of Interrupt signal and wake up signal for each slot. A maximum of 8 slots can be defined. If one interrupt signal is associated with multiple slots. the HD can know which interrupt is generated by reading these status bits. By a power on reset or by Software Reset For All, the Interrupt signal shall be de asserted and this status shall read 00h. Bit 00 - Slot 1, Bit 01 - Slot 2, Bit 02 - Slot 3, ----- -----, Bit 07 - Slot 8 Host Controller Version Register (HOST_CTRL_VER)—Offset FEh Access Method Type: Memory Mapped I/O Register (Size: 16 bits) HOST_CTRL_VER: [BAR0] + FEh BAR0 Type: PCI Configuration Register (Size: 32 bits) BAR0 Reference: [B:0, D:20, F:0] + 10h Default: A702h 0 1 8 0 0 vend_ver_num 1 12 Intel® Quark™ SoC X1000 Datasheet 660 1 1 1 4 0 0 0 0 0 0 0 1 0 spec_ver_num 15 August 2015 Document Number: 329676-005US SDIO/SD/eMMC—Intel® Quark™ SoC X1000 Bit Range Default & Access Description 15: 8 a7h RO Vendor Version Number (vend_ver_num): This status is reserved for the vendor version number. The HD should not use this status. 7: 0 02h RO Specification Version Number (spec_ver_num): This status indicates the Host Controller Spec. Version. The upper and lower 4- bits indicate the version. 00 - SD Host Specification version 1.0, 01 - SD Host Specification version 2.00 including only the feature of the Test Register, 02 - SD Host Specification Version 3.00, others - Reserved §§ August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 661 Intel® Quark™ SoC X1000—SDIO/SD/eMMC Intel® Quark™ SoC X1000 Datasheet 662 August 2015 Document Number: 329676-005US High Speed UART—Intel® Quark™ SoC X1000 18.0 High Speed UART The Intel® Quark™ SoC X1000 implements two instances of a 16550 compliant UART controller that supports baud rates between 300 and 2764800. Hardware flow control is also supported. Note: Only one UART controller (UART0) provides MODEM pins. 18.1 Signal Descriptions See Chapter 2.0, “Physical Interfaces” for additional details. The signal description table has the following headings: • Signal Name: The name of the signal/pin • Direction: The buffer direction can be either input, output, or I/O (bidirectional) • Type: The buffer type found in Chapter 4.0, “Electrical Characteristics” • Description: A brief explanation of the signal’s function Table 113. UART 0 Interface Signals Signal Name Table 114. Direction/ Type Description SIU0_RXD I UART 0 - Serial Input SIU0_TXD O UART 0 - Serial Output SIU0_RTS_B O UART 0 - MODEM Request to Send SIU0_CTS_B I UART 0 - MODEM Clear to Send SIU0_DCD_B I UART 0 - MODEM Data Carrier Detect SIU0_DSR_B I UART 0 - MODEM Data Set Ready SIU0_DTR_B O UART 0 - MODEM Data Terminal Ready SIU0_RI_B I UART 0 - MODEM Ring Indicator UART 1 Interface Signals Signal Name Direction/ Type Description SIU1_RXD I UART 1 - Serial Input SIU1_TXD O UART 1 -Serial Output SIU1_RTS_B O UART 1 - MODEM Request to Send SIU1_CTS_B I UART 1 - MODEM Clear to Send August 2015 Document Number: 329676-005US Intel® Quark™ SoC X1000 Datasheet 663 Intel® Quark™ SoC X1000—High Speed UART 18.2 Features 18.2.1 UART Function The UART transmits and receives data in bit frames as shown in Figure 37. • Each data frame is between 7 and 12 bits long, depending on the size of data programmed and if parity and stop bits are enabled. • The frame begins with a start bit that is represented by a high-to-low transition. • Next, 5 to 8 bits of data are transmitted, beginning with the Least Significant Bit (LSB). An optional parity bit follows, which is set if even parity is enabled and an odd number of ones exist within the data byte; or, if odd parity is enabled and the data byte contains an even number of ones. • The data frame ends with one, one and a half, or two stop bits (as programmed by users), which is represented by one or two successive bit periods of a logic one. Figure 37. UART Data Transfer Flow Start Bit Data [0] Data [1] Data [2] Data [3] Data [4] Data [5] Data [6] Data [7] Parity Bit Stop Bit 1 Stop  Bit 2 TXD or RXD pin LSB MSB Shaded bits are optional that users can program. 18.2.2 Baud Rate Generator The baud rates for the UARTs are generated from the base frequency (Fbase) indicated in Table 115 by programming the DLH and DLL registers as divisor. The hexadecimal value of the divisor is (IER_DLH[7:0]
DH8066101531900S R1BX 价格&库存

很抱歉,暂时无法提供与“DH8066101531900S R1BX”相匹配的价格&库存,您可以联系我们找货

免费人工找货